Catel.Data.ModelBase.ClearIsDirtyOnAllChilds C# (CSharp) Метод

ClearIsDirtyOnAllChilds() приватный статический Метод

Clears the IsDirty on all childs.
private static ClearIsDirtyOnAllChilds ( object obj, HashSet handledReferences ) : void
obj object The object.
handledReferences HashSet The already handled references, required to prevent circular stackoverflows.
Результат void
        private static void ClearIsDirtyOnAllChilds(object obj, HashSet<IModel> handledReferences)
        {
            var objAsModelBase = obj as ModelBase;
            var objAsIEnumerable = obj as IEnumerable;

            if (objAsModelBase != null)
            {
                if (handledReferences.Contains(objAsModelBase))
                {
                    return;
                }

                objAsModelBase.IsDirty = false;
                handledReferences.Add(objAsModelBase);

                var catelTypeInfo = PropertyDataManager.GetCatelTypeInfo(obj.GetType());
                foreach (var property in catelTypeInfo.GetCatelProperties())
                {
                    object value = objAsModelBase.GetValue(property.Value);

                    ClearIsDirtyOnAllChilds(value, handledReferences);
                }
            }
            else if (objAsIEnumerable != null)
            {
                foreach (var childItem in objAsIEnumerable)
                {
                    if (childItem is ModelBase)
                    {
                        ClearIsDirtyOnAllChilds(childItem, handledReferences);
                    }
                }
            }
        }

Same methods

ModelBase::ClearIsDirtyOnAllChilds ( ) : void