// Updating Data Version 02 (Used By Server And Drugstore) public void UpdatingData02(PharmaceuticalInformation.Updating.UpdatingOfDataOfInformation Updating) { // // Updating Of PriceLists // UpdatingOfPriceLists(Updating); // // Updating Data // UpdatingData(Updating); }
// Updating Data Version 02 ARH private void UpdatingDataARH02(PharmaceuticalInformation.Updating.UpdatingOfDataOfInformation Updating) { // try { // //RecordingInLogFile("00"); // RecordingInLogFile("Checking Updating"); // ArrayList ListOfFiles = new ArrayList(); // // Getting List Of Directory // try { ListOfFiles = WorkWithFTP.GettingListOfDirectory04(_PathToExportOfFTP, _UsePassive); } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при получении списка файлов: {0}", E.Message)); } // RecordingInLogFile("01"); // if (ListOfFiles.Count > 0) { // RecordingInLogFile("02"); RecordingInLogFile(String.Format("Count Of ListOfFiles: {0}", ListOfFiles.Count.ToString())); // ArrayList ListOfDataSet = new ArrayList(); // // Filtering // int[] NumbersForUpdating = new int[0]; // RecordingInLogFile("03"); // try { int[] NumbersOfExportingOnFTP = new int[ListOfFiles.Count]; // RecordingInLogFile("04"); // for (int i = 0; i < NumbersOfExportingOnFTP.Length; i++) { NumbersOfExportingOnFTP[i] = Convert.ToInt32(System.IO.Path.GetFileNameWithoutExtension(ListOfFiles[i].ToString())); } // RecordingInLogFile("05"); // NumbersForUpdating = Updating.FilteringOnNumberOfExported(NumbersOfExportingOnFTP); // RecordingInLogFile("06"); // } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при фильтрации списка: {0}", E.Message)); } // // Restriction Of Volume // RecordingInLogFile("07"); // try { if (NumbersForUpdating.Length > 100) { // //RecordingInLogFile("08"); // int[] AdmittedOfUpdates = new int[100]; for (int i = 0; i < AdmittedOfUpdates.Length; i++) { AdmittedOfUpdates[i] = NumbersForUpdating[i]; } // //RecordingInLogFile("09"); // NumbersForUpdating = AdmittedOfUpdates; } } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при ограничении списка (100): {0}", E.Message)); } // RecordingInLogFile("10"); // // Check Of Count // RecordingInLogFile(String.Format("Count Of NumbersForUpdating: {0}", NumbersForUpdating.Length.ToString())); // if (NumbersForUpdating.Length > 0) { // //RecordingInLogFile("11"); // RecordingInLogFile("Starting Updating"); // // !!! // try { foreach (int CurrentNumber in NumbersForUpdating) { RecordingInLogFile(String.Format("Number Of Updating {0}", CurrentNumber)); string PathToFileOnFTP = String.Format("{0}{1}.rar", _PathToExportOfFTP, CurrentNumber); string PathToFileARH = String.Format("{0}{1}.rar", _PathToTMPFolder, CurrentNumber); // //RecordingInLogFile("12"); // if (WorkWithFTP.DownloadingFile(PathToFileOnFTP, PathToFileARH, _UsePassive)) { // //RecordingInLogFile("13"); // WorkWithFiles.WaitingOfExists(PathToFileARH, 40); WorkWithFiles.WaitingOfIsAccess(PathToFileARH, 40); // if (WorkWithFiles.ExtractionFromArchive(_PathToArchivingProgram, PathToFileARH, _PathToTMPFolder)) { // //RecordingInLogFile("14"); // string PathToFileBIN = System.IO.Path.ChangeExtension(PathToFileARH, "bin"); // WorkWithFiles.WaitingOfExists(PathToFileBIN, 800); WorkWithFiles.WaitingOfIsAccess(PathToFileBIN, 800); // WorkWithFiles.WaitingOfExists(PathToFileARH, 800); WorkWithFiles.WaitingOfIsAccess(PathToFileARH, 800); // WorkWithFiles.DeletingFile(PathToFileARH); // try { // //RecordingInLogFile("15"); // System.IO.FileStream FS = new System.IO.FileStream(PathToFileBIN, System.IO.FileMode.Open, System.IO.FileAccess.Read); ListOfDataSet.Add(WorkWithFiles.Loading(FS)); FS.Close(); // //RecordingInLogFile("16"); // WorkWithFiles.DeletingFile(PathToFileBIN); } catch (Exception E) { ReturningMessageAboutError( String.Format("Ошибка при открытии файла: {0}", PathToFileBIN), E, true); } finally { } } } } } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при скачке файлов: {0}", E.Message)); } // // Association List Of DataSet // //RecordingInLogFile("17"); // try { int CountOfLastPackage = 0; for (int i = 0; i <= ListOfDataSet.Count; i++) { // //RecordingInLogFile("18"); // if ((i != 0) && (((i % 10) == 0) || (i == ListOfDataSet.Count))) { // //RecordingInLogFile("19"); // int CountOfNewPackage = i - CountOfLastPackage; DataSet[] DataSetForAssociation = new DataSet[CountOfNewPackage]; int Next = 0; for (int i2 = CountOfLastPackage; i2 < i; i2++) { DataSetForAssociation[Next++] = (DataSet)ListOfDataSet[i2]; } CountOfLastPackage = i; // //RecordingInLogFile("20"); // DataSet AssociationsOfUpdating = Updating.AssociationDateSet(DataSetForAssociation); // //RecordingInLogFile("21"); // // Updating // /*foreach (DataSet CurrentDataSet in ListOfDataSet) * Updating.UpdatingOfData(CurrentDataSet);*/ Updating.UpdatingOfData(AssociationsOfUpdating); // //RecordingInLogFile("22"); } } } catch (Exception E) { RecordingInLogFile(String.Format("Ошибка при накладке обновлений: {0}", E.Message)); } // RecordingInLogFile("Stoping Updating"); // } } // RecordingInLogFile(" "); // GC.Collect(); } catch (Exception E) { RecordingInLogFile(String.Format("ERROR В Методе UpdatingData: {0}", E.Message)); } }
// Updating Data private void UpdatingData(PharmaceuticalInformation.Updating.UpdatingOfDataOfInformation Updating) { // try { // RecordingInLogFile("Checking Updating"); // ArrayList ListOfFiles = new ArrayList(); // // Getting List Of Directory // try { ListOfFiles = WorkWithFTP.GettingListOfDirectory04(_PathToExportOfFTP, _UsePassive); } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при получении списка файлов: {0}", E.Message)); } // if (ListOfFiles.Count > 0) { // //RecordingInLogFile(String.Format("Count Of ListOfFiles: {0}", ListOfFiles.Count.ToString())); // // Filtering // int[] NumbersForUpdating = new int[0]; // try { int[] NumbersOfExportingOnFTP = new int[ListOfFiles.Count]; // for (int i = 0; i < NumbersOfExportingOnFTP.Length; i++) { NumbersOfExportingOnFTP[i] = Convert.ToInt32(System.IO.Path.GetFileNameWithoutExtension(ListOfFiles[i].ToString())); } // NumbersForUpdating = Updating.FilteringOnNumberOfExported02(NumbersOfExportingOnFTP); // } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при фильтрации списка: {0}", E.Message)); } // // Restriction Of Volume // try { if (NumbersForUpdating.Length > 200) { // int[] AdmittedOfUpdates = new int[200]; for (int i = 0; i < AdmittedOfUpdates.Length; i++) { AdmittedOfUpdates[i] = NumbersForUpdating[i]; } NumbersForUpdating = AdmittedOfUpdates; } } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при ограничении списка (200): {0}", E.Message)); } // // Check Of Count // RecordingInLogFile( String.Format("Count Of Packs For Updating: {0}", NumbersForUpdating.Length.ToString())); // if (NumbersForUpdating.Length > 0) { // WorkWithFTP.ShowingMessages = false; // RecordingInLogFile(""); RecordingInLogFile("Starting Updating"); // // !!! // try { foreach (int CurrentNumber in NumbersForUpdating) { // RecordingInLogFile(String.Format("Loading Updating Of {0}", CurrentNumber)); // // Creating Paths // string PathToFileOnFTP = String.Format("{0}{1}.rar", _PathToExportOfFTP, CurrentNumber); string PathToFileARH = String.Format("{0}{1}.rar", _PathToTMPFolder, CurrentNumber); // // Downloading File Of Updating // bool ResultOfDownloading = false; // byte CountOfDownloading = 0; while (CountOfDownloading < 2) { // CountOfDownloading++; // ResultOfDownloading = WorkWithFTP.DownloadingFile02(PathToFileOnFTP, PathToFileARH, _UsePassive); // if (!ResultOfDownloading) { System.Threading.Thread.Sleep(108); } // if (ResultOfDownloading && (CountOfDownloading > 1)) { RecordingInLogFile(String.Format("Repeating Downloading Of Updating {0}", CurrentNumber)); } // if (ResultOfDownloading) { break; } } // // Waiting Of Existing And Access // if (ResultOfDownloading) { WorkWithFiles.WaitingOfExists(PathToFileARH, 40); WorkWithFiles.WaitingOfIsAccess(PathToFileARH, 40); } // // Extraction From Archive // bool ResultOfExtractionFromArchive = false; string PathToFileBIN = System.IO.Path.ChangeExtension(PathToFileARH, "bin"); // if (ResultOfDownloading) { ResultOfExtractionFromArchive = WorkWithFiles.ExtractionFromArchive( _PathToArchivingProgram, PathToFileARH, _PathToTMPFolder); } // // Waiting Of Existing And Access // if (ResultOfExtractionFromArchive) { // WorkWithFiles.WaitingOfExists(PathToFileBIN, 800); WorkWithFiles.WaitingOfIsAccess(PathToFileBIN, 800); // WorkWithFiles.WaitingOfExists(PathToFileARH, 800); WorkWithFiles.WaitingOfIsAccess(PathToFileARH, 800); // WorkWithFiles.DeletingFile(PathToFileARH); } // // Loading Updating Of Data // if (ResultOfExtractionFromArchive) { // try { // // !!! // System.IO.FileStream FS = new System.IO.FileStream(PathToFileBIN, System.IO.FileMode.Open, System.IO.FileAccess.Read); DataSet LoadedData = WorkWithFiles.Loading(FS); FS.Close(); // // !!! // try { Updating.UpdatingOfData02(LoadedData); } catch (Exception E) { RecordingInLogFile( String.Format("ERROR Ошибка при загрузке обновления: {0}", E.Message)); } // WorkWithFiles.DeletingFile(PathToFileBIN); } catch (Exception E) { /* * ReturningMessageAboutError( * String.Format("ERROR Ошибка при обработке файла: {0}", * PathToFileBIN), E, true); */ this.RecordingInLogFile( String.Format("ERROR Ошибка при обработке файла ({0}): {1}", System.IO.Path.GetFileName(PathToFileBIN), E.Message)); } } } } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при скачке файлов: {0}", E.Message)); } // RecordingInLogFile("Stoping Updating"); // WorkWithFTP.ShowingMessages = true; // } } else { RecordingInLogFile(String.Format("Count Of Packs For Updating: {0}", ListOfFiles.Count)); } // RecordingInLogFile(" "); // GC.Collect(); } catch (Exception E) { RecordingInLogFile(String.Format("ERROR В Методе UpdatingData02: {0}", E.Message)); } }
// Updating Of PriceLists private void UpdatingOfPriceLists(PharmaceuticalInformation.Updating.UpdatingOfDataOfInformation Updating) { // // !!! // try { // RecordingInLogFile("Checking Updating Of PriceLists"); // // Getting List Of Files Of Updating Of PriceLists // ArrayList ListOfFilesOfUpdatingOfPriceLists = new ArrayList(); // try { ListOfFilesOfUpdatingOfPriceLists = WorkWithFTP.GettingListOfDirectory04(PathOfExportedPriceListsOfFTP, _UsePassive); } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при получении списка файлов обновления Прайс-Листов: {0}", E.Message)); } // if (ListOfFilesOfUpdatingOfPriceLists.Count > 0) { // //RecordingInLogFile(String.Format("Count Of ListOfFiles: {0}", ListOfFiles.Count.ToString())); // // Getting Number Of Updating Of PriceLists // int NumberOfUpdatingOfPriceLists = -1; // try { // int[] ListOfNumbersOfUpdatingOfPriceLists = new int[ListOfFilesOfUpdatingOfPriceLists.Count]; // for (int i = 0; i < ListOfNumbersOfUpdatingOfPriceLists.Length; i++) { ListOfNumbersOfUpdatingOfPriceLists[i] = Convert.ToInt32( System.IO.Path.GetFileNameWithoutExtension( ListOfFilesOfUpdatingOfPriceLists[i].ToString())); } // NumberOfUpdatingOfPriceLists = Updating.FilteringOfListsOfExportedPriceLists(ListOfNumbersOfUpdatingOfPriceLists); } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при фильтрации списка файлов обновления Прайс-Листов: {0}", E.Message)); } // RecordingInLogFile( String.Format("Number Of Updating Of PriceLists: {0}", NumberOfUpdatingOfPriceLists)); // if (NumberOfUpdatingOfPriceLists > -1) { // WorkWithFTP.ShowingMessages = false; // RecordingInLogFile(""); RecordingInLogFile("Starting Updating Of PriceLists"); // // !!! // try { // RecordingInLogFile(String.Format("Loading Updating Of PriceLists: {0}", NumberOfUpdatingOfPriceLists)); // string PathToFileOnFTP = String.Format("{0}{1}.rar", PathOfExportedPriceListsOfFTP, NumberOfUpdatingOfPriceLists); string PathToFileARH = String.Format("{0}{1}.rar", _PathToTMPFolder, NumberOfUpdatingOfPriceLists); // // Downloading File Of Updating // bool ResultOfDownloading = false; // byte CountOfDownloading = 0; while (CountOfDownloading < 2) { // CountOfDownloading++; // ResultOfDownloading = WorkWithFTP.DownloadingFile(PathToFileOnFTP, PathToFileARH, _UsePassive); // if (!ResultOfDownloading) { System.Threading.Thread.Sleep(108); } // if (ResultOfDownloading && (CountOfDownloading > 1)) { RecordingInLogFile("Repeating Loading Updating Of PriceLists"); } // if (ResultOfDownloading) { break; } } // if (ResultOfDownloading) { // WorkWithFiles.WaitingOfExists(PathToFileARH, 108); WorkWithFiles.WaitingOfIsAccess(PathToFileARH, 108); // if (WorkWithFiles.ExtractionFromArchive(_PathToArchivingProgram, PathToFileARH, _PathToTMPFolder)) { // string PathToFileTXT = System.IO.Path.ChangeExtension(PathToFileARH, "txt"); // WorkWithFiles.WaitingOfExists(PathToFileTXT, 800); WorkWithFiles.WaitingOfIsAccess(PathToFileTXT, 800); // WorkWithFiles.WaitingOfExists(PathToFileARH, 800); WorkWithFiles.WaitingOfIsAccess(PathToFileARH, 800); // WorkWithFiles.DeletingFile(PathToFileARH); // // Updating Of PriceLists // if (System.IO.File.Exists(PathToFileTXT)) { Updating.UpdatingOfPriceLists(PathToFileTXT, NumberOfUpdatingOfPriceLists); } else { RecordingInLogFile("ERROR Ошибка, нет файла обновления Прайс-Листов"); } // // Deleting File // WorkWithFiles.DeletingFile(PathToFileTXT); } else { RecordingInLogFile("ERROR Неуспешная процедура разорхивирования файла."); } } else { RecordingInLogFile("ERROR Неуспешная процедура загрузки файла обновления."); } } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка при скачке файла обновления Прайс-Листов: {0}", E.Message)); } //шибка при обработке файла // RecordingInLogFile("Stoping Updating Of PriceLists"); // WorkWithFTP.ShowingMessages = true; } } // RecordingInLogFile(" "); // GC.Collect(); } catch (Exception E) { RecordingInLogFile(String.Format("ERROR Ошибка в методе UpdatingOfPriceLists: {0}", E.Message)); } }