/// <summary> /// Десериализует организацию (xml) /// </summary> /// <param name="path">Путь к файлу импорта (xml)</param> /// <returns>Организация</returns> public static Organization xmlOrganizationDeserializer(string path) { string xml = File.ReadAllText(path); Director dir = Director .getInstance(XDocument.Parse(xml).Element("ORGANIZATION").Attribute("dirname").Value, XDocument.Parse(xml).Element("ORGANIZATION").Attribute("dirlastname").Value, DateTime.Parse(XDocument.Parse(xml).Element("ORGANIZATION").Attribute("dirbirth").Value)); AssociateDirector assDir = AssociateDirector .getInstance(XDocument.Parse(xml).Element("ORGANIZATION").Attribute("assdirname").Value, XDocument.Parse(xml).Element("ORGANIZATION").Attribute("assdirlastname").Value, DateTime.Parse(XDocument.Parse(xml).Element("ORGANIZATION").Attribute("assdirbirth").Value)); Organization org = new Organization(XDocument.Parse(xml).Element("ORGANIZATION").Attribute("orgname").Value, dir, assDir); var colDepsXml = XDocument.Parse(xml) .Element("ORGANIZATION") .Element("DEPARTMENTS") .Elements("DEPARTMENT") .ToList(); // Цикл по департаментам в организации foreach (var itemDepXml in colDepsXml) { Department dep = deserializerSubDeps(itemDepXml); org.addDepartament(dep); // добавляем созданный отдел в организацию } return(org); }
/// <summary> /// Конструктор 2.1 /// </summary> /// <param name="name">Наименование организации</param> /// <param name="director">Директор организации</param> /// <param name="associateDirector">Зам. директора</param> /// <param name="departments">Департаменты в организации</param> public Organization(string name, Director director, AssociateDirector associateDirector, ObservableCollection <Department> departments) { this.Name = name; this.Dir = director; this.AssociateDir = associateDirector; this.departments = departments; }
/// <summary> /// Возвращает инстанс зам. директора /// </summary> /// <param name="name"></param> /// <param name="lastName"></param> /// <param name="salary"></param> /// <returns></returns> public static AssociateDirector getInstance(string name, string lastName, DateTime birthDate) { if (instance == null) { instance = new AssociateDirector(name, lastName, birthDate); } return(instance); }
/// <summary> /// Конструктор 1.2 /// </summary> /// <param name="name">Наименование организации</param> /// <param name="director">Директор организации</param> /// <param name="associateDirector">Зам. директора</param> public Organization(string name, Director director, AssociateDirector associateDirector) : this(name, director, associateDirector, new ObservableCollection <Department>()) { }