Exemplo n.º 1
0
        /* Обновить записи в БД */
        private void UpdateSingleReportInDB()
        {
            this.Enabled = false;
            int cnt = 0;

            cnt = businessController.UpdateBusinessReport(businessList);

            if (cnt == -1)
            {
                MessageBox.Show("Во время сохранения произошла ошибка. Работа была прервана.", "Ошибка");
            }
            else
            {
                MessageBox.Show("Данные обновлены успешно.", "Успех");
            }

            this.Enabled = true;
        }
Exemplo n.º 2
0
        /* Сохранить в БД много файлов */
        private void btn_SaveMany_Click(object sender, EventArgs e)
        {
            if (EndDate > StartDate)
            {
                if (FileNames.Count > 0)
                {
                    if (FileNames.Count == DaysDiff)
                    {
                        if (MessageBox.Show("Маркетплейс: " + cb_MarketPlace2.SelectedItem.ToString() + "\n\nЗагрузить отчеты с этими параметрами?", "Подтвердите действие", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            this.Enabled     = false;
                            this.Cursor      = Cursors.WaitCursor;
                            updatedRowsCount = 0;
                            List <string> badFileNames = new List <string> {
                            };
                            richTextBox1.Text = "";
                            richTextBox1.Refresh();
                            UpdateDate = StartDate;
                            string error_skus = "";
                            generalInsertedCount = 0;
                            generalUpdatedCount  = 0;
                            generalCount         = 0;

                            for (int i = 0; i < FileNames.Count; i++)       //обрабатываем файлы и смотрим, есть ли неизвестные товары
                            {
                                richTextBox1.Text = "Загрузка и обработка файлов с отчетами...";
                                richTextBox1.Refresh();

                                int marketplaceid = GetMarketPlaceIdByName_Many(cb_MarketPlace2.SelectedItem.ToString());
                                int productId;
                                LoadManyFilesStepByStep(FileNames[i]);
                                if (businessList.Count > 0)
                                {
                                    productId = -2;
                                    for (int j = 0; j < businessList.Count; j++)
                                    {
                                        productId = GetProductIdBySKU(businessList[j].SKU, marketplaceid);
                                        if (productId == -1)
                                        {
                                            if (!error_skus.Contains(businessList[j].SKU))
                                            {
                                                error_skus += "Date: " + businessList[j].UpdateDate + " SKU: " + businessList[j].SKU + " Marketplace: " + GetMarketPlaceNameById(businessList[j].MarketPlaceId) + "\n";
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    richTextBox1.Text += "Файл отчета \"" + FileNames[i] + "\" не был загружен. Нет данных для сохранения.\n";
                                }
                            }
                            if (error_skus.Length > 0)          //ещё одна проверка на то, есть ли неизвестные товары
                            {
                                richTextBox1.Text += error_skus;
                                richTextBox1.Refresh();
                            }
                            else
                            {
                                PrepareReportForSaving_Many(true);

                                if (businessListOfErrors.Count > 0)         //и ещё одна проверка на то, есть ли неизвестные товары
                                {
                                    string errorsMsg = "\nДанные по следующим товарам не были лены. Вороятно, этот товар не занесен в программу.\n";
                                    string errorsstr = "";
                                    foreach (var k in businessListOfErrors)
                                    {
                                        errorsstr += "Date: " + k.UpdateDate + " SKU: " + k.SKU + " Marketplace: " + GetMarketPlaceNameById(k.MarketPlaceId) + "\n";
                                    }
                                    richTextBox1.Text += errorsstr;
                                    richTextBox1.Refresh();
                                }
                                else
                                {
                                    richTextBox1.Text = "";
                                    richTextBox1.Refresh();

                                    for (int i = 0; i < FileNames.Count; i++)
                                    {
                                        businessListForUpdate.Clear();

                                        LoadManyFilesStepByStep(FileNames[i]);
                                        PrepareReportForSaving_Many(false);

                                        if (businessList.Count > 0)
                                        {
                                            updatedCount  = 0;
                                            insertedCount = 0;
                                            MakeSummaryBusinessList();

                                            businessController.InsertBusinessReportBeforeUpdating(businessList, lb_Progress);

                                            if (businessListForUpdate.Count > 0)
                                            {
                                                businessController.UpdateBusinessReport(businessListForUpdate, lb_Progress);
                                            }

                                            richTextBox1.Text += FileNames[i] + "\n" + "Загружено: " + insertedCount + "\nОбновлено: " + updatedCount + "\nВсего: " + (insertedCount + updatedCount).ToString() + " из " + businessList.Count + "\n\n";
                                            richTextBox1.Refresh();
                                            generalCount         += businessList.Count;
                                            generalInsertedCount += insertedCount;
                                            generalUpdatedCount  += updatedCount;
                                        }
                                        else
                                        {
                                            richTextBox1.Text          += "Файл отчета \"" + FileNames[i] + "\" не был загружен. Нет данных для сохранения.\n";
                                            richTextBox1.SelectionStart = richTextBox1.Text.Length;
                                            richTextBox1.ScrollToCaret();
                                            richTextBox1.Refresh();
                                        }
                                        UpdateDate = UpdateDate.AddDays(1);
                                    }
                                    richTextBox1.Text += "\n\nЗагрузка завершена.\nВсего обработано записей: " + generalCount + "\nВсего загружено: " + generalInsertedCount + "\nВсего обновлено: " + generalUpdatedCount;
                                    richTextBox1.Refresh();
                                    lb_Progress.Text = "";
                                }
                            }
                            this.Cursor  = Cursors.Default;
                            this.Enabled = true;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Количество загружаемых файлов отличается от количества выбранных дней.", "Ошибка");
                    }
                }
                else
                {
                    MessageBox.Show("Файлы отчетов не были загружены. Для продолжения загрузите один или более файл отчета.", "Ошибка");
                }
            }
            else
            {
                MessageBox.Show("Дата начала больше даты окончания.", "Ошибка");
            }
        }
Exemplo n.º 3
0
        //----------------------------------------------------------------------------------

        #region Business
        /* Сохранить в БД много файлов */
        private void uploadBusinessReports(string _mode)
        {
            bool errors = false;

            updatedRowsCount = 0;
            List <string> badFileNames = new List <string> {
            };

            if (_mode.Equals("insert"))
            {
                if (busNewerObjectList.Count > 0)
                {
                    this.Enabled = false;
                    this.Cursor  = Cursors.WaitCursor;

                    string error_skus = "";
                    for (int i = 0; i < busNewerObjectList.Count; i++)
                    {
                        int marketplaceid = GetMarketPlaceIdByName_Many(busNewerObjectList[i].marketplace);
                        int productId;
                        LoadManyFilesStepByStep(busNewerObjectList[i].fullFileName);
                        if (businessList.Count > 0)
                        {
                            productId = -2;
                            for (int j = 0; j < businessList.Count; j++)
                            {
                                productId = GetProductIdBySKU(businessList[j].SKU, marketplaceid);
                                if (productId == -1)
                                {
                                    if (!error_skus.Contains(businessList[j].SKU))
                                    {
                                        error_skus += businessList[j].SKU + "\n";
                                    }
                                }
                            }
                        }
                    }
                    if (error_skus.Length > 0)
                    {
                        //MessageBox.Show("Товаров ниже нет в системе. Для продолжения сначала добавьте эти товары.\n" + error_skus, "Ошибка");
                        //richTextBox1.Text = error_skus;
                        //richTextBox1.Enabled = true;
                    }
                    else
                    {
                        for (int i = 0; i < busNewerObjectList.Count; i++)
                        {
                            LoadManyFilesStepByStep(busNewerObjectList[i].fullFileName);

                            if (businessList.Count > 0)
                            {
                                UpdateDate = busNewerObjectList[i].updateDate;
                                PrepareReportForSaving_Many(busNewerObjectList[i].marketplace);

                                if (businessController.InsertBusinessReport(businessList) == 0)
                                {
                                    errors = true;
                                }
                                else
                                {
                                    updatedRowsCount += businessList.Count;
                                }

                                //if (businessListOfErrors.Count > 0)
                                //{
                                //    string errorsMsg = "Данные по следующим товарам не были добавлены. Вороятно, этот товар не занесен в программу.\n";
                                //    string errorsstr = "";
                                //    foreach (var k in businessListOfErrors)
                                //    {
                                //        errorsstr += "Данные товара SKU: " + k.SKU + " Название товара: " + GetProductNameById(k.ProductId) + "\nне были добавлены. Вороятно, этот товар не занесен в программу";
                                //    }
                                //    MessageBox.Show(errorsMsg, "Ошибка");
                                //    richTextBox1.Text = errorsstr;
                                //}
                            }
                            else
                            {
                                //MessageBox.Show("Файл отчета \"" + FileNames[i] + "\" не был загружен. Нет данных для сохранения.", "Ошибка");
                                //badFileNames.Add(FileNames[i]);
                                errors = true;
                            }
                            UpdateDate = UpdateDate.AddDays(1);
                        }

                        if (!errors)
                        {
                            Console.WriteLine("Сохранение успешно. Всего сохранено строк - " + updatedRowsCount);
                        }
                        else
                        {
                            Console.WriteLine("Сохранение прошло с ошибками.");
                            //richTextBox1.Text += "Ниже представлены названия файлов, которые не получилось загрузить. Данные из них не были загружены на сервер.\n";
                            foreach (var t in badFileNames)
                            {
                                //richTextBox1.Text += t + "\n";
                            }
                        }
                    }

                    this.Cursor  = Cursors.Default;
                    this.Enabled = true;
                }
                else
                {
                    Console.WriteLine("Файлы отчетов не были загружены. Для продолжения загрузите один или более файл отчета.", "Ошибка");
                }
            }
            if (_mode.Equals("update"))
            {
                if (busOlderObjectList.Count > 0)
                {
                    this.Enabled = false;
                    this.Cursor  = Cursors.WaitCursor;

                    string error_skus = "";
                    for (int i = 0; i < busOlderObjectList.Count; i++)
                    {
                        int marketplaceid = GetMarketPlaceIdByName_Many(busOlderObjectList[i].marketplace);
                        int productId;
                        LoadManyFilesStepByStep(busOlderObjectList[i].fullFileName);
                        if (businessList.Count > 0)
                        {
                            productId = -2;
                            for (int j = 0; j < businessList.Count; j++)
                            {
                                productId = GetProductIdBySKU(businessList[j].SKU, marketplaceid);
                                if (productId == -1)
                                {
                                    if (!error_skus.Contains(businessList[j].SKU))
                                    {
                                        error_skus += businessList[j].SKU + "\n";
                                    }
                                }
                            }
                        }
                    }
                    if (error_skus.Length > 0)
                    {
                    }
                    else
                    {
                        for (int i = 0; i < busOlderObjectList.Count; i++)
                        {
                            LoadManyFilesStepByStep(busOlderObjectList[i].fullFileName);

                            if (businessList.Count > 0)
                            {
                                UpdateDate = busOlderObjectList[i].updateDate;
                                PrepareReportForSaving_Many(busOlderObjectList[i].marketplace);

                                if (businessController.UpdateBusinessReport(businessList) == 0)
                                {
                                    errors = true;
                                }
                                else
                                {
                                    updatedRowsCount += businessList.Count;
                                }
                            }
                            else
                            {
                                errors = true;
                            }
                            UpdateDate = UpdateDate.AddDays(1);
                        }

                        if (!errors)
                        {
                            Console.WriteLine("Сохранение успешно. Всего сохранено строк - " + updatedRowsCount);
                        }
                        else
                        {
                            Console.WriteLine("Сохранение прошло с ошибками.");
                        }
                    }

                    this.Cursor  = Cursors.Default;
                    this.Enabled = true;
                }
                else
                {
                    Console.WriteLine("Файлы отчетов не были загружены. Для продолжения загрузите один или более файл отчета.", "Ошибка");
                }
            }
        }