public static void Merge(string folderIn, string folderOut) { string[] files = Directory.GetFiles(folderIn); string fileHM = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "HM"); string fileLM = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "LM"); string fileH1 = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "H_"); string fileL1 = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "L_"); string errorMessage = ""; if (String.IsNullOrWhiteSpace(fileHM)) { errorMessage += "Отсутствует файл HM\r\n"; } if (String.IsNullOrWhiteSpace(fileLM)) { errorMessage += "Отсутствует файл LM\r\n"; } if (String.IsNullOrWhiteSpace(fileH1)) { errorMessage += "Отсутствует файл H_\r\n"; } if (String.IsNullOrWhiteSpace(fileL1)) { errorMessage += "Отсутствует файл L_\r\n"; } if (!String.IsNullOrWhiteSpace(errorMessage)) { Messenger.ThrowMessage(errorMessage); //MessageBox.Show(errorMessage); return; } var docHM = XDocument.Load(fileHM); var docLM = XDocument.Load(fileLM); var docH1 = XDocument.Load(fileH1); var docL1 = XDocument.Load(fileL1); MergeXML(docHM, docH1, docLM, docL1); Converter.CountSum(docHM); Messenger.WriteMessage("Чиним PRVS в HM"); PRVS.RepairPRVSInDoc(docHM, folderIn); Messenger.WriteMessage("Чиним IDSP в HM"); Converter.FixIdsp(docHM); Messenger.WriteMessage("Сохраняемся в папку"); docLM.Save(folderOut + Path.GetFileName(fileLM)); docHM.Save(folderOut + Path.GetFileName(fileHM)); Messenger.WriteMessage("Завершено"); }
internal static void ConvertXML(string folderIn, string folderOut, bool moveChilds = false, bool moveAll = false) { string[] files = Directory.GetFiles(folderIn); string fileD = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "DM"); string fileH = files.FirstOrDefault(X => Path.GetFileName(X).Substring(0, 2) == "HM"); var docD = XDocument.Load(fileD); var docH = XDocument.Load(fileH); Messenger.WriteMessage("Исправляем Диспансеризацию"); FixDispanser(docD, folderIn); Messenger.WriteMessage("Исправляем Диспансеризацию для тех, кто прошел после 01.04.2015"); ConverterApril.FixDispanser01042015(docD, folderIn); Messenger.WriteMessage("Исправляем СНИЛСы врачей в D-файле"); FixSnilsInDFile(docD, folderIn); Messenger.WriteMessage("Исправляем СНИЛСы врачей в H-файле"); FixSinlsInHFile(docH, folderIn); Messenger.WriteMessage("Чиним IDSP в HM"); Converter.FixIdsp(docH); if (moveChilds) { Messenger.WriteMessage("Переносим диспансеризацию детей"); MoveChildsFromDToH(docD, docH);//, folderOut + Path.GetFileName(fileD), folderOut + Path.GetFileName(fileH)); } if (moveAll) { Messenger.WriteMessage("Переносим диспансеризацию всех"); MoveAllFromDToH(docD, docH);//, folderOut + Path.GetFileName(fileD), folderOut + Path.GetFileName(fileH)); } if (moveAll || moveChilds) { Messenger.WriteMessage("Исправляем все перенесенные записи в H-файле"); FixHFile3(docH); } if (!moveAll && !moveChilds) { Messenger.WriteMessage("Исправляем в DM файле (когда не переносим в HM):"); FixDispanserIfNotMove(docD); } Messenger.WriteMessage("Исправляем h-файл"); FixhFile2(docH, folderIn); Messenger.WriteMessage("Пересчитываем цены услуг"); FixUslPrices(docD, folderIn); FixUslPrices(docH, folderIn); Messenger.WriteMessage("Пересчитываем убщую сумму"); CountSum(docD); CountSum(docH); Messenger.WriteMessage("Чиним PRVS в DM"); PRVS.RepairPRVSInDoc(docD, folderIn); Messenger.WriteMessage("Чиним PRVS в HM"); PRVS.RepairPRVSInDoc(docH, folderIn); Messenger.WriteMessage("Чиним IDSERV в HM"); FixIdServ(docH); Messenger.WriteMessage("Чиним IDSERV в DM"); FixIdServ(docD); Messenger.WriteMessage("Чиним CODE_USL в HM"); FixCodeUsl(docH); Messenger.WriteMessage("Чиним CODE_USL в DM"); FixCodeUsl(docD); Messenger.WriteMessage("Сохраняемся в папку"); var dOut = folderOut + Path.GetFileName(fileD); var hOut = folderOut + Path.GetFileName(fileH); docD.Save(dOut, SaveOptions.None); docH.Save(hOut, SaveOptions.None); Messenger.WriteMessage("Завершено"); }