Esempio n. 1
0
 public virtual void Add(CSharpConstruct construct)
 {
     if (construct == this)
     {
         throw new InvalidOperationException();
     }
     if (construct is Property property)
     {
         if (!Properties.Contains(property))
         {
             Properties.Add(property);
         }
     }
     if (construct is Method method)
     {
         if (!Methods.Contains(method))
         {
             Methods.Add(method);
         }
     }
     if (construct is Object @object)
     {
         if (!InnerObjects.Contains(@object))
         {
             InnerObjects.Add(@object);
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Определение вложенных объектов
        /// </summary>
        /// <param name="level">Уровень вложенности по типу объекта</param>
        internal void DefineInners(DbSet <Object_cascade> objCascade, ObjectTypeEnum level, ref List <ObjectMDM> levelObjects)
        {
            if (ObjectType > level)
            {
                return;
            }
            if (ObjectType == level)
            {
                levelObjects.Add(this);
                return;
            }
            var innersObjDB = objCascade.Where(w => w.Object_id_parent == Id);

            foreach (var item in innersObjDB)
            {
                var innerObj = new ObjectMDM(item, this);
                InnerObjects.Add(innerObj);
                innerObj.DefineInners(objCascade, level, ref levelObjects);
            }
        }