private void LoadHAction_Execute(object sender, SimpleActionExecuteEventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); if (dialog.ShowDialog() == DialogResult.OK) { using (Stream stream = dialog.OpenFile()) { UnitOfWork uow = new UnitOfWork(((DevExpress.ExpressApp.Xpo.XPObjectSpace)ObjectSpace).Session.DataLayer); XDocument doc = XDocument.Load(stream); if (doc.Root.Name != "ZL_LIST") { throw new ArgumentException("ZL_LIST"); } //ZL_LIST zl_list = ObjectSpace.CreateObject<ZL_LIST>(); var zl_list = new ZL_LIST(uow); //заголовок XElement xzglv = doc.Root.Element("ZGLV"); if (xzglv != null) { var zglv = new ZGLV(uow); //var zglv = ObjectSpace.CreateObject<ZGLV>(); zglv.VERSION = GetString(xzglv.Element("VERSION"), true); zglv.DATA = GetString(xzglv.Element("DATA"), true); zglv.FILENAME = GetString(xzglv.Element("FILENAME"), true); //zglv.FILENAME1 = GetString(xzglv.Element("FILENAME1"), false); zl_list.ZGLV = zglv; } else { throw new ArgumentException("ZGLV"); } //счет XElement xschet = doc.Root.Element("SCHET"); if (xschet != null) { var schet = new SCHET(uow); //SCHET schet = ObjectSpace.CreateObject<SCHET>(); schet.CODE = GetString(xschet.Element("CODE"), true); schet.CODE_MO = GetString(xschet.Element("CODE_MO"), true); schet.YEAR = GetString(xschet.Element("YEAR"), false); schet.MONTH = GetString(xschet.Element("MONTH"), false); schet.NSCHET = GetString(xschet.Element("NSCHET"), false); schet.DSCHET = GetString(xschet.Element("DSCHET"), false); schet.PLAT = GetString(xschet.Element("PLAT"), false); schet.SUMMAV = GetString(xschet.Element("SUMMAV"), false); schet.COMENTS = GetString(xschet.Element("COMENTS"), false); schet.SUMMAP = GetString(xschet.Element("SUMMAP"), false); schet.SANK_MEK = GetString(xschet.Element("SANK_MEK"), false); schet.SANK_MEE = GetString(xschet.Element("SANK_MEE"), false); schet.SANK_EKMP = GetString(xschet.Element("SANK_EKMP"), false); zl_list.SCHET = schet; } int counter = 0; //Список записей foreach (var xzap in doc.Root.Elements("ZAP")) { //var zap = ObjectSpace.CreateObject<ZAP>(); var zap = new ZAP(uow); zap.N_ZAP = GetString(xzap.Element("N_ZAP"), true); zap.PR_NOV = GetString(xzap.Element("PR_NOV"), true); var xpacient = xzap.Element("PACIENT"); if (xpacient != null) { //PACIENT pacient = ObjectSpace.CreateObject<PACIENT>(); var pacient = new PACIENT(uow); pacient.ID_PAC = GetString(xpacient.Element("ID_PAC"), true); pacient.VPOLIS = GetString(xpacient.Element("VPOLIS"), true); pacient.SPOLIS = GetString(xpacient.Element("SPOLIS"), false); pacient.NPOLIS = GetString(xpacient.Element("NPOLIS"), true); pacient.ST_OKATO = GetString(xpacient.Element("ST_OKATO"), false); pacient.SMO = GetString(xpacient.Element("SMO"), false); pacient.SMO_OGRN = GetString(xpacient.Element("SMO_OGRN"), false); pacient.SMO_OK = GetString(xpacient.Element("SMO_OK"), false); pacient.SMO_NAM = GetString(xpacient.Element("SMO_NAM"), false); pacient.NOVOR = GetString(xpacient.Element("NOVOR"), false); pacient.VNOV_D = GetString(xpacient.Element("VNOV_D"), false); zap.PACIENT = pacient; } foreach (var xsluch in xzap.Elements("SLUCH")) { var sluch = new SLUCH(uow); //SLUCH sluch = ObjectSpace.CreateObject<SLUCH>(); sluch.IDCASE = GetString(xsluch.Element("IDCASE"), true); sluch.USL_OK = GetString(xsluch.Element("USL_OK"), false); sluch.VIDPOM = GetString(xsluch.Element("VIDPOM"), false); sluch.FOR_POM = GetString(xsluch.Element("FOR_POM"), false); sluch.NPR_MO = GetString(xsluch.Element("NPR_MO"), false); sluch.EXTR = GetString(xsluch.Element("EXTR"), false); sluch.LPU = GetString(xsluch.Element("LPU"), false); sluch.LPU_1 = GetString(xsluch.Element("LPU_1"), false); sluch.PODR = GetString(xsluch.Element("PODR"), false); sluch.PROFIL = GetString(xsluch.Element("PROFIL"), false); sluch.DET = GetString(xsluch.Element("DET"), false); sluch.NHISTORY = GetString(xsluch.Element("NHISTORY"), false); sluch.DATE_1 = GetString(xsluch.Element("DATE_1"), false); sluch.DATE_2 = GetString(xsluch.Element("DATE_2"), false); sluch.DS0 = GetString(xsluch.Element("DS0"), false); sluch.DS1 = GetString(xsluch.Element("DS1"), false); //sluch.DS2 = GetString(xsluch.Element("DS2"), false); //sluch.DS3 = GetString(xsluch.Element("DS3"), false); sluch.VNOV_M = GetString(xsluch.Element("VNOV_M"), false); sluch.CODE_MES1 = GetString(xsluch.Element("CODE_MES1"), false); sluch.CODE_MES2 = GetString(xsluch.Element("CODE_MES2"), false); sluch.RSLT = GetString(xsluch.Element("RSLT"), false); sluch.ISHOD = GetString(xsluch.Element("ISHOD"), false); sluch.PRVS = GetString(xsluch.Element("PRVS"), false); sluch.VERS_SPEC = GetString(xsluch.Element("VERS_SPEC"), false); sluch.IDDOKT = GetString(xsluch.Element("IDDOKT"), false); sluch.OS_SLUCH = GetString(xsluch.Element("OS_SLUCH"), false); sluch.IDSP = GetString(xsluch.Element("IDSP"), false); sluch.ED_COL = GetString(xsluch.Element("ED_COL"), false); sluch.TARIF = GetString(xsluch.Element("TARIF"), false); sluch.SUMV = GetString(xsluch.Element("SUMV"), false); sluch.OPLATA = GetString(xsluch.Element("OPLATA"), false); sluch.SUMP = GetString(xsluch.Element("SUMP"), false); sluch.SANK_IT = GetString(xsluch.Element("SANK_IT"), false); sluch.SANK = GetString(xsluch.Element("SANK"), false); sluch.COMENTSL = GetString(xsluch.Element("COMENTSL"), false); foreach (var xusl in xsluch.Elements("USL")) { var usl = new USL(uow); //USL usl = ObjectSpace.CreateObject<USL>(); usl.IDSERV = GetString(xusl.Element("IDSERV"), true); usl.LPU = GetString(xusl.Element("LPU"), false); usl.LPU_1 = GetString(xusl.Element("LPU_1"), false); usl.PODR = GetString(xusl.Element("PODR"), false); usl.PROFIL = GetString(xusl.Element("PROFIL"), false); usl.VID_VME = GetString(xusl.Element("VID_VME"), false); usl.DET = GetString(xusl.Element("DET"), false); usl.DATE_IN = GetString(xusl.Element("DATE_IN"), false); usl.DATE_OUT = GetString(xusl.Element("DATE_OUT"), false); usl.DS = GetString(xusl.Element("DS"), false); usl.CODE_USL = GetString(xusl.Element("CODE_USL"), false); usl.KOL_USL = GetString(xusl.Element("KOL_USL"), false); usl.TARIF = GetString(xusl.Element("TARIF"), false); usl.SUMV_USL = GetString(xusl.Element("SUMV_USL"), false); usl.PRVS = GetString(xusl.Element("PRVS"), false); usl.CODE_MD = GetString(xusl.Element("CODE_MD"), false); usl.COMENTU = GetString(xusl.Element("COMENTU"), false); sluch.USL.Add(usl); } zap.SLUCH.Add(sluch); } zl_list.ZAPS.Add(zap); counter++; if (counter % 1000 == 0) { uow.CommitChanges(); uow.Dispose(); uow = new UnitOfWork(((DevExpress.ExpressApp.Xpo.XPObjectSpace)ObjectSpace).Session.DataLayer); zl_list = uow.GetObjectByKey <ZL_LIST>(zl_list.Oid); //ObjectSpace.CommitChanges(); } } uow.CommitChanges(); //ObjectSpace.CommitChanges(); MessageBox.Show("Загрузка завершена. Всего записей : " + counter); } } }
private void LoadXMLAction_Execute(object sender, SimpleActionExecuteEventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); if (dialog.ShowDialog() == DialogResult.OK) { using (Stream stream = dialog.OpenFile()) { UnitOfWork uow = new UnitOfWork(((DevExpress.ExpressApp.Xpo.XPObjectSpace)ObjectSpace).Session.DataLayer); XDocument doc = XDocument.Load(stream); if (doc.Root.Name != "PERS_LIST") { throw new ArgumentException("PERS_LIST"); } var pers_list = new PERS_LIST(uow); //PERS_LIST pers_list = ObjectSpace.CreateObject<PERS_LIST>(); //заголовок XElement xzglv = doc.Root.Element("ZGLV"); if (xzglv != null) { var zglv = new ZGLV(uow); //var zglv = ObjectSpace.CreateObject<ZGLV>(); zglv.VERSION = GetString(xzglv.Element("VERSION"), true); zglv.DATA = GetString(xzglv.Element("DATA"), true); zglv.FILENAME = GetString(xzglv.Element("FILENAME"), true); zglv.FILENAME1 = GetString(xzglv.Element("FILENAME1"), false); pers_list.ZGLV = zglv; } else { throw new ArgumentException("ZGLV"); } int counter = 0; //Список персов foreach (var xpers in doc.Root.Elements("PERS")) { var pers = new PERS(uow); //var pers = ObjectSpace.CreateObject<PERS>(); pers.ID_PAC = GetString(xpers.Element("ID_PAC"), true); pers.FAM = GetString(xpers.Element("FAM"), false); pers.IM = GetString(xpers.Element("IM"), false); pers.OT = GetString(xpers.Element("OT"), false); pers.W = GetNumber(xpers.Element("W"), true); pers.DR = GetString(xpers.Element("DR"), false); //foreach (var xdost in xpers.Elements("DOST")) //{ // Dost dost = (Dost)GetNumber(xdost, true); // pers.DOST.Add(dost); //} pers.FAM_P = GetString(xpers.Element("FAM_P"), false); pers.IM_P = GetString(xpers.Element("IM_P"), false); pers.OT_P = GetString(xpers.Element("OT_P"), false); pers.W_P = GetNumber(xpers.Element("W_P"), false); pers.DR_P = GetString(xpers.Element("DR_P"), false); //foreach (var xdost in xpers.Elements("DOST_P")) //{ // Dost dost = (Dost)GetNumber(xdost, true); // pers.DOST_P.Add(dost); //} pers.MR = GetString(xpers.Element("MR"), false); pers.DOCTYPE = GetString(xpers.Element("DOCTYPE"), false); pers.DOCSER = GetString(xpers.Element("DOCSER"), false); pers.DOCNUM = GetString(xpers.Element("DOCNUM"), false); pers.SNILS = GetString(xpers.Element("SNILS"), false); pers.OKATOG = GetString(xpers.Element("OKATOG"), false); pers.OKATOP = GetString(xpers.Element("OKATOP"), false); pers.COMENTP = GetString(xpers.Element("COMENTP"), false); //pers.PERS_LIST = pers_list; pers_list.People.Add(pers); counter++; if (counter % 1000 == 0) { uow.CommitChanges(); uow.Dispose(); uow = new UnitOfWork(((DevExpress.ExpressApp.Xpo.XPObjectSpace)ObjectSpace).Session.DataLayer); pers_list = uow.GetObjectByKey <PERS_LIST>(pers_list.Oid); } } uow.CommitChanges(); MessageBox.Show("Загрузка завершена. Всего записей : " + counter); } } }