示例#1
0
        /* Иницируем сохранение отчета в БД для одиночного файла */
        private void Btn_Save_Click(object sender, EventArgs e)
        {
            if (fileNames.Count > 0)
            {
                if (MessageBox.Show("Загрузить отчеты?", "Подтвердите действие", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    lb_Progress.Visible = true;
                    this.Enabled        = false;

                    richTextBox2.Text = "";
                    string errors = "";

                    foreach (var _fileName in fileNames)
                    {
                        insertedCount = 0;
                        updatedCount  = 0;

                        advProductsList.Clear();
                        advProductsListForUpdate.Clear();
                        advProductsListOfErrors.Clear();

                        OpenNewFileForSponsoredProducts(_fileName);

                        if (advProductsList.Count > 0)
                        {
                            SetCampaignAndMarketplaceToAllRows_AP(_fileName);

                            if (advProductsListOfErrors.Count > 0)
                            {
                                foreach (var t in advProductsListOfErrors)
                                {
                                    errors += "Date: " + UpdateDate.ToString() + " Campaign: " + t.CampaignName + "; AdGroup: " + t.AdGroupName + "; Targeting: " + t.Targeting + "; Marketplace: " + GetMarketPlaceNameById(t.MarketPlaceId) + "\n\n";
                                }
                            }
                            if (errors.Length == 0 || errors.Contains("Competitors"))
                            {
                                MakeSummaryAdvProductListbyTargetingInAdGroups();

                                lb_Progress.Text = "Обновление данных...";
                                lb_Progress.Refresh();

                                advertController.InsertAdvertising_Product_Report(advProductsList, lb_Progress);

                                if (advProductsListForUpdate.Count > 0)
                                {
                                    advertController.UpdateAdvertising_Product_Report(advProductsListForUpdate, lb_Progress);
                                }

                                richTextBox2.Text += _fileName + "\n" + "Загружено: " + insertedCount + "\nОбновлено: " + updatedCount + "\nВсего: " + (insertedCount + updatedCount).ToString() + " из " + advProductsList.Count + "\n\n";

                                LoggerNotification log = new LoggerNotification(_fileName);
                                log.Show();
                            }
                            else
                            {
                                richTextBox2.Text += errors;
                            }
                        }
                        else
                        {
                            richTextBox2.Text += "Пустой файл: " + _fileName + "\n";
                        }
                    }

                    this.Enabled        = true;
                    lb_Progress.Visible = false;
                    lb_Progress.Text    = "";
                }
            }
            else
            {
                MessageBox.Show("Не выбраны файлы для загрузки.", "Ошибка");
            }
        }
示例#2
0
        /* Иницируем сохранение отчета в БД для множества файлов */
        private void uploadAdvertisingReports(string _mode)
        {
            if (_mode.Equals("insert"))
            {
                bool errors = false;
                updatedRowsCount = 0;

                if (advNewerObjectList.Count > 0)
                {
                    this.Enabled = false;
                    this.Cursor  = Cursors.WaitCursor;

                    foreach (var t in advNewerObjectList)
                    {
                        LoadManyFilesStepByStep_AP(t.fullFileName);

                        if (advProductsList.Count > 0)
                        {
                            SetCampaignAndMarketplaceToAllRows_Many_AP(t.marketplace);

                            if (advertController.InsertAdvertising_Product_Report(advProductsList) == 0)
                            {
                                errors = true;
                            }
                            else
                            {
                                updatedRowsCount += advProductsList.Count;
                            }

                            if (advProductsListOfErrors.Count > 0)
                            {
                                string errorsMsg = "Данные по следующим кампаниям не были добавлены. Вороятно, имя товара в названии кампании задано не согласно шаблону.\n";
                                string errorsstr = "";
                                foreach (var k in advProductsListOfErrors)
                                {
                                    errorsstr += "Date: " + UpdateDate.ToString() + " Campaign: " + k.CampaignName + " AdGroup " + k.AdGroupName + " Targeting " + k.Targeting + "\n";
                                }
                                Console.WriteLine(errorsstr);
                            }
                        }
                        else
                        {
                            errors = true;
                            Console.WriteLine("Файл отчета \"" + t + "\" не был загружен. Нет данных для сохранения.");
                        }

                        UpdateDate = UpdateDate.AddDays(1);
                    }
                }
                else
                {
                    Console.WriteLine("Выберите файлы для загрузки");
                }
            }
            else if (_mode.Equals("update"))
            {
                bool errors = false;
                updatedRowsCount = 0;

                if (advOlderObjectList.Count > 0)
                {
                    foreach (var t in advOlderObjectList)
                    {
                        LoadManyFilesStepByStep_AP(t.fullFileName);

                        if (advProductsList.Count > 0)
                        {
                            SetCampaignAndMarketplaceToAllRows_Many_AP(t.marketplace);

                            if (advertController.UpdateAdvertising_Product_Report(advProductsList) == -1)
                            {
                                errors = true;
                            }
                            else
                            {
                                updatedRowsCount += advProductsList.Count;
                            }

                            if (advProductsListOfErrors.Count > 0)
                            {
                                string errorsMsg = "Данные по следующим кампаниям не были добавлены. Вороятно, имя товара в названии кампании задано не согласно шаблону.\n";
                                string errorsstr = "";
                                foreach (var k in advProductsListOfErrors)
                                {
                                    errorsstr += "Date: " + UpdateDate.ToString() + " Campaign: " + k.CampaignName + " AdGroup " + k.AdGroupName + " Targeting " + k.Targeting + "\n";
                                }
                                Console.WriteLine(errorsstr);
                            }
                        }
                        else
                        {
                            errors = true;
                            Console.WriteLine("Файл отчета \"" + t + "\" не был загружен. Нет данных для сохранения.");
                        }

                        UpdateDate = UpdateDate.AddDays(1);
                    }
                }
                else
                {
                    Console.WriteLine("Выберите файлы для загрузки");
                }
            }
        }