Exemple #1
0
 // 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);
 }
Exemple #2
0
        // 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)); }
        }
Exemple #3
0
 // 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)); }
 }
Exemple #4
0
 // 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)); }
 }