Пример #1
0
        public void AddChild(AssemblyBase asm)
        {
            var cont = children.Where(x => x.BlockID == asm.BlockID).FirstOrDefault();

            if (cont == null)
            {
                this.children.Add(asm);
            }
        }
Пример #2
0
 /// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="templAsm">Сборка - образец/шаблон, на основе которой создаётся текущая сборка.</param>
 /// <param name="id">адрес стартового блока сборки</param>
 /// <param name="mode">признак, определяющий, сохранять ссылку на шаблон\образец или нет.</param>
 public AssemblyBase(AssemblyBase templAsm, BlockAddress id, FOLLOWMODE mode) :
     base(id, templAsm.BlockType, -1, 0, -1, -1, -1, null, DateTime.Now)
 {
     if (mode == FOLLOWMODE.Follow)
     {
         this.templAsm = templAsm;
     }
     CopyChildrenRequrs(this, templAsm.Children);
 }
Пример #3
0
 /// <summary>
 /// Рекурсивное копирование дочерних сборок из источника в целевую сборку.
 /// </summary>
 /// <param name="asm">целевая сборка</param>
 /// <param name="src_children">перечень дочерних сборок сборки-источника</param>
 private void CopyChildrenRequrs(AssemblyBase asm, List <AssemblyBase> src_children)
 {
     foreach (var src_child in src_children)
     {
         var newchild = new AssemblyBase(src_child.BlockType);
         newchild.ParentID = asm.RootBlock_id;
         newchild.Order    = src_child.Order;
         asm.children.Add(newchild);
         CopyChildrenRequrs(newchild, src_child.children);
     }
 }
Пример #4
0
 /// <summary>
 /// Конструктор - копировщик.
 /// </summary>
 /// <param name="assembly">Исходная сборка.</param>
 public AssemblyBase(AssemblyBase assembly) :
     base(assembly.BlockID, assembly.BlockType, assembly.ParentID, assembly.Order, assembly.FactID,
          assembly.PredecessorID, assembly.SuccessorID, assembly.UserAttrs, assembly.Created)
 {
 }