Beispiel #1
0
        /// <summary>Синхронизация свойств классов</summary>
        /// <param name="dc">Класс, который синхронизируем</param>
        /// <param name="vc">Класс, с которым синхронизируем</param>
        private void SynchronizeProperties(DomainClass dc, VisioClass vc)
        {
            // Приводим в порядок атрибуты
            String attrstr = "\n";
            String[] attrs = vc.Attributes.Split('\n');
            for (int i = 0; i < attrs.Length; i++)
            {
                attrs[i] = attrs[i].Trim();
                attrstr += attrs[i] + "\n";
            }

            // Добавляем новые свойства
            foreach (String attr in attrs)
            {
                if (attr.Length == 0) continue;
                if (dc.Properties[attr].Xml == null)
                {
                    dc.CreateProperty("/System/String", attr, attr);
                }
            }

            // Удаляем ненужные свойства
            for (int i = 0; i < dc.Properties.Count; i++)
            {
                DomainProperty prop = dc.Properties[i] as DomainProperty;
                if (!attrstr.Contains("\n" + prop.Xml.GetAttribute("Name") + "\n"))
                {
                    dc.Properties.RemoveLinked(prop);
                    i--;
                }
            }
        }