public static void UpdateDbFromXml(DevExpress.ExpressApp.IObjectSpace objSpace, string xmlPath) { XDocument doc = XDocument.Load(xmlPath); const string elementNameStartsWith = "value"; const string code_attr = "code"; foreach (var element in doc.Root.Elements()) { if (element.Name.ToString().StartsWith(elementNameStartsWith) == false) { continue; } Country obj = objSpace.FindObject <Country>(DevExpress.Data.Filtering.CriteriaOperator.Parse("Code=?", element.Attribute(code_attr).Value)); if (obj == null) { obj = objSpace.CreateObject <Country>(); obj.Code = int.Parse(element.Attribute("code").Value); obj.CodeAlfa2 = element.Attribute("a2").Value; obj.CodeAlfа3 = element.Attribute("a3").Value; obj.ShortName = element.Attribute("short").Value; obj.FullName = element.Attribute("full").Value; } } }
/// <summary> /// Добавляет в базу классификаторы из файла XML /// </summary> /// <param name="updater">Пространство объектов ObjectSpace</param> /// <param name="xmlPath">Путь до файла классификатора</param> public static void UpdateDbFromXml(DevExpress.ExpressApp.IObjectSpace objSpace, string xmlPath) { XDocument doc = XDocument.Load(xmlPath); const string elementNameStartsWith = "entry"; const string id_attr = "id"; const string code_attr = "s_code"; const string name_attr = "s_name"; foreach (var element in doc.Descendants("entry")) { if (element.Name.ToString().StartsWith(elementNameStartsWith) == false) { continue; } VidMedVmeshatelstva obj = objSpace.FindObject <VidMedVmeshatelstva>(DevExpress.Data.Filtering.CriteriaOperator.Parse("Id=?", element.Element(id_attr).Value)); if (obj == null) { obj = objSpace.CreateObject <VidMedVmeshatelstva>(); obj.Id = int.Parse(element.Element(id_attr).Value); obj.Code = element.Element(code_attr).Value; obj.Name = element.Element(name_attr).Value; } } }
/// <summary> /// Обновить из файла xml /// </summary> /// <param name="objSpace"></param> /// <param name="xmlPath"></param> /// <remarks> /// пример записи из XML /// <ROW fio="Баирова Л.В." dan_id="167" fam="Баирова" nam="Людмила" mid="Викторовна" date_born="26.08.1981" sex="ж" full_doctor_id="348" users_id="348" norma="30.12.1899 0:15:00" stavka="1" inner_doctor_code="348" federal_code="348" sp_otdel_id="101" sp_spec_doctor_id="176" spec_doctor="Терапевты-1" sp_lpu_id="2301001" full_fio="348 Баирова Л.В. (Терапевты-1)" full_name="348 Баирова Л.В. (Терапевты-1)" spec_name="Баирова Л.В. (Терапевты-1)" expiration_date="23.02.2025" employee_type="0" dolg_name="Врач-терапевт участковый" otdel_fio="Баирова Л.В. (Теpапия 1)" dolg_fio="Баирова Л.В. (Врач-терапевт участковый)" blist_dolg="ТЕРАПЕВТ" can_have_schedule="1"/> /// <ROW fio="Очирова М.Д." dan_id="78" fam="Очирова" nam="Мария" mid="Дунгаровна" date_born="06.12.1960" sex="ж" full_doctor_id="2650" users_id="2650" norma="30.12.1899" stavka="1" inner_doctor_code="2650" federal_code="null" sp_otdel_id="202" sp_spec_doctor_id="1313" spec_doctor="Педиатры 2" sp_lpu_id="2301001" full_fio="2650 Очирова М.Д. (Педиатры 2)" full_name="Очирова М.Д. (Педиатры 2)" spec_name="Очирова М.Д. (Педиатры 2)" expiration_date="18.02.2045" employee_type="0" dolg_name="Врач-педиатр участковый" otdel_fio="Очирова М.Д. (Педиатрия 2)" dolg_fio="Очирова М.Д. (Врач-педиатр участковый)" blist_dolg="ПЕДИАТР" can_have_schedule="1"/> /// </remarks> public static void UpdateDbFromXml(DevExpress.ExpressApp.IObjectSpace objSpace, string xmlPath) { XDocument doc = XDocument.Load(xmlPath); const string elementsContainer = "ROWDATA"; const string elementNameStartsWith = "ROW"; const string code_attr = "inner_doctor_code"; foreach (var element in doc.Root.Element(elementsContainer).Elements()) { if (element.Name.ToString().StartsWith(elementNameStartsWith) == false) { continue; } Doctor obj = objSpace.FindObject <Doctor>(DevExpress.Data.Filtering.CriteriaOperator.Parse("InnerCode=?", element.Attribute(code_attr).Value)); if (obj == null) { obj = objSpace.CreateObject <Doctor>(); obj.FirstName = element.Attribute("nam").Value; obj.LastName = element.Attribute("fam").Value; obj.MiddleName = element.Attribute("mid").Value; DateTime birthDate = DateTime.MinValue; if (DateTime.TryParse(element.Attribute("date_born").Value, out birthDate)) { obj.Birthdate = birthDate; } var innerCode = element.Attribute("inner_doctor_code"); obj.InnerCode = (innerCode == null || innerCode.Value == "null") ? null : (int?)int.Parse(innerCode.Value); var federalCode = element.Attribute("federal_code"); obj.FederalCode = (federalCode == null || federalCode.Value == "null") ? null : federalCode.Value; var otdelElement = element.Attribute("sp_otdel_id"); if (otdelElement != null && otdelElement.Value != "null") { obj.Otdelenie = objSpace.FindObject <Otdel>(DevExpress.Data.Filtering.CriteriaOperator.Parse("Id=?", otdelElement.Value)); } var uchastok = objSpace.FindObject <Uchastok>(DevExpress.Data.Filtering.CriteriaOperator.Parse("DoctorId=?", obj.InnerCode)); obj.Uchastki.Add(uchastok); /// в XML должность доктора почему-то храниться в аттрибуте sp_spec_doctor_id. /// Можно спутать со специальностью. var positionElement = element.Attribute("sp_spec_doctor_id"); if (positionElement != null && positionElement.Value != "null") { obj.Position = objSpace.FindObject <DoctorDolgnost>(DevExpress.Data.Filtering.CriteriaOperator.Parse("Code=?", positionElement.Value)); } } } }
public static void UpdateDbFromXml(DevExpress.ExpressApp.IObjectSpace objSpace, string xmlPath) { XDocument doc = XDocument.Load(xmlPath); foreach (XElement el in doc.Root.Elements()) { int id = Convert.ToInt32(el.Attribute("IDIDST").Value); F005 obj = objSpace.FindObject <F005>(DevExpress.Data.Filtering.CriteriaOperator.Parse("IDIDST=?", id)); if (obj == null) { obj = objSpace.CreateObject <F005>(); obj.IDIDST = Convert.ToInt32(el.Attribute("IDIDST").Value); obj.DATEBEG = el.Attribute("DATEBEG").Value == "" ? null : (DateTime?)Convert.ToDateTime(el.Attribute("DATEBEG").Value); obj.DATEEND = el.Attribute("DATEEND").Value == "" ? null : (DateTime?)Convert.ToDateTime(el.Attribute("DATEEND").Value); obj.STNAME = el.Attribute("STNAME").Value; } } }
/// <summary> /// Добавляет в базу классификаторы из файла XML /// </summary> /// <param name="updater">Пространство объектов ObjectSpace</param> /// <param name="xmlPath">Путь до файла классификатора</param> public static void UpdateDbFromXml(DevExpress.ExpressApp.IObjectSpace objSpace, string xmlPath) { XDocument doc = XDocument.Load(xmlPath); const string elementNameStartsWith = "ZAP"; const string code_attr = "IDDoc"; const string name_attr = "DocName"; /*const string serial_attr = "DocSer"; * const string number_attr = "DocNum"; */ const string dateBeg_attr = "DATEBEG"; const string dateEnd_attr = "DATEEND"; foreach (var element in doc.Root.Elements()) { if (element.Name.ToString().StartsWith(elementNameStartsWith) == false) { continue; } VidDocumenta obj = objSpace.FindObject <VidDocumenta>(DevExpress.Data.Filtering.CriteriaOperator.Parse("Code=?", element.Attribute(code_attr).Value)); if (obj == null) { obj = objSpace.CreateObject <VidDocumenta>(); obj.Code = int.Parse(element.Attribute(code_attr).Value); obj.Name = element.Attribute(name_attr).Value; /* * obj.DocumentSerial = element.Attribute(serial_attr).Value; * obj.DocumentNumber = element.Attribute(number_attr).Value; */ obj.DateBeg = element.Attribute(dateBeg_attr).Value == "" ? null : (DateTime?)Convert.ToDateTime(element.Attribute(dateBeg_attr).Value); obj.DateEnd = element.Attribute(dateEnd_attr).Value == "" ? null : (DateTime?)Convert.ToDateTime(element.Attribute(dateEnd_attr).Value); } } }
void IComplexViewItem.Setup(DevExpress.ExpressApp.IObjectSpace objectSpace, DevExpress.ExpressApp.XafApplication application) { this.ObjectSpace = objectSpace; this.Application = application; }