Example #1
0
        private static void StartMainWindow(
            string loginDialogName,
            IApplicationConfigurator applicationConfigurator,
            IParametersProvider parametersProvider)
        {
            //Настрока удаления
            Configure.ConfigureDeletion();
            PerformanceHelper.AddTimePoint(logger, "Закончена настройка удаления");

            //Настройка сервисов
            if (parametersProvider.ContainsParameter("instant_sms_enabled_database") && parametersProvider.ContainsParameter("sms_service_address"))
            {
                if (parametersProvider.GetParameterValue("instant_sms_enabled_database") == loginDialogName)
                {
                    InstantSmsServiceSetting.Init(parametersProvider.GetParameterValue("sms_service_address"));
                }
            }

            if (parametersProvider.ContainsParameter("sms_payment_send_enabled_database") && parametersProvider.ContainsParameter("sms_payment_send_service_address"))
            {
                if (parametersProvider.GetParameterValue("sms_payment_send_enabled_database") == loginDialogName)
                {
                    SmsPaymentServiceSetting.Init(parametersProvider.GetParameterValue("sms_payment_send_service_address"));
                }
            }
            DriverApiParametersProvider.InitializeNotifications(parametersProvider, loginDialogName);

            CreateTempDir();

            //Запускаем программу
            MainWin                = new MainWindow(passwordValidator, applicationConfigurator);
            MainWin.Title         += $" (БД: {loginDialogName})";
            QSMain.ErrorDlgParrent = MainWin;
            MainWin.Show();
        }
Example #2
0
        public ExportToSiteDlg()
        {
            if (!ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("database_maintenance"))
            {
                MessageDialogHelper.RunWarningDialog("Доступ запрещён!", "У вас недостаточно прав для доступа к этой вкладке. Обратитесь к своему руководителю.", Gtk.ButtonsType.Ok);
                FailInitialize = true;
                return;
            }

            Build();
            TabName = "Экспорт интернет магазин";
            comboExportMode.ItemsEnum = typeof(ExportMode);

            if (_parametersProvider.ContainsParameter(Export.OnlineStoreUrlParameterName))
            {
                entrySitePath.Text = _parametersProvider.GetParameterValue(Export.OnlineStoreUrlParameterName);
            }

            if (_parametersProvider.ContainsParameter(Export.OnlineStoreLoginParameterName))
            {
                entryUser.Text = _parametersProvider.GetParameterValue(Export.OnlineStoreLoginParameterName);
            }

            if (_parametersProvider.ContainsParameter(Export.OnlineStorePasswordParameterName))
            {
                entryPassword.Text = _parametersProvider.GetParameterValue(Export.OnlineStorePasswordParameterName);
            }

            if (_parametersProvider.ContainsParameter(Export.OnlineStoreExportMode))
            {
                comboExportMode.SelectedItem = Enum.Parse(typeof(ExportMode), _parametersProvider.GetParameterValue(Export.OnlineStoreExportMode));
            }
        }
 public int GetOkkId()
 {
     if (!_parametersProvider.ContainsParameter("номер_отдела_ОКК"))
     {
         throw new InvalidProgramException("В параметрах базы не настроен параметр : номер_отдела_ОКК");
     }
     return(int.Parse(_parametersProvider.GetParameterValue("номер_отдела_ОКК")));
 }
Example #4
0
        public IncomeCategory DefaultIncomeCategory(IUnitOfWork uow)
        {
            if (_parametersProvider.ContainsParameter(defaultIncomeCategory))
            {
                int id = -1;
                id = int.Parse(_parametersProvider.GetParameterValue(defaultIncomeCategory));
                if (id == -1)
                {
                    return(null);
                }

                return(uow.Session.QueryOver <IncomeCategory> ()
                       .Where(inc => inc.Id == id)
                       .Take(1)
                       .SingleOrDefault());
            }
            return(null);
        }
        public Subdivision GetQCDepartment(IUnitOfWork uow)
        {
            var qcDep = "номер_отдела_ОКК";

            if (!_parametersProvider.ContainsParameter(qcDep))
            {
                throw new InvalidProgramException("В параметрах базы не указан номер отдела контроля качества [номер_отдела_ОКК]");
            }

            return(uow.GetById <Subdivision>(int.Parse(_parametersProvider.GetParameterValue(qcDep))));
        }
Example #6
0
        public int GetIdentifierOfOnlineShopGroup()
        {
            string parameterName = "код_группы_товаров_для_интерент-магазина";

            if (!_parametersProvider.ContainsParameter(parameterName) ||
                !int.TryParse(_parametersProvider.GetParameterValue(parameterName), out int res))
            {
                return(0);
            }

            return(res);
        }
Example #7
0
        public void RunToSite()
        {
            Errors.Clear();
            TotalTasks = 12;
            ExportMode mode = _parametersProvider.ContainsParameter(OnlineStoreExportMode)
                                ? (ExportMode)Enum.Parse(typeof(ExportMode), _parametersProvider.GetParameterValue(OnlineStoreExportMode))
                                : ExportMode.Umi;

            OnProgressPlusOneTask("Соединяемся с сайтом");
            //Проверяем связь с сервером
            var configuredUrl = _parametersProvider.GetParameterValue(OnlineStoreUrlParameterName);
            var parsedUrl     = new Uri(configuredUrl);
            var path          = parsedUrl.LocalPath;
            var client        = new RestClient(configuredUrl.Replace(path, ""));

            client.CookieContainer = new System.Net.CookieContainer();
            client.Authenticator   = new HttpBasicAuthenticator(_parametersProvider.GetParameterValue(OnlineStoreLoginParameterName),
                                                                _parametersProvider.GetParameterValue(OnlineStorePasswordParameterName));
            var           request  = new RestRequest(path + "?type=catalog&mode=checkauth", Method.GET);
            IRestResponse response = client.Execute(request);

            DebugResponse(response);
            if (!response.Content.StartsWith("success"))
            {
                Errors.Add($"Не возможно связаться с сайтом. Ответ Сайта:{response.Content}");
                return;
            }

            CreateObjects();

            OnProgressPlusOneTask("Инициализация процесса обмена");
            //Инициализируем передачу. Ответ о сжатии и размере нас не интересует. Мы не умеем других вариантов.
            request  = new RestRequest(path + "?type=catalog&mode=init", Method.GET);
            response = client.Execute(request);
            DebugResponse(response);

            OnProgressPlusOneTask("Выгружаем каталог");
            SendFileXMLDoc(client, path, "import.xml", rootCatalog, mode);

            OnProgressPlusOneTask("Выгружаем изображения");
            var exportedImages = Catalog.Goods.Nomenclatures.SelectMany(x => x.Images);
            //Внимание здесь "/" после 1c_exchange.php в выгрузке для umi не случаен, в документации его нет, но если его не написать то на запрос без слеша,
            // приходит ответ 301 то есть переадресация на такую же строку но со слешем, но RestSharp после переадресации уже отправляет
            // не POST запрос а GET, из за чего, файл не принимается нормально сервером.
            var beginOfUrl = path + (mode == ExportMode.Umi ? "/" : "") + "?type=catalog&mode=file&filename=";

            foreach (var img in exportedImages)
            {
                var imgFileName    = $"img_{img.Id:0000000}.jpg";
                var dirImgFileName = $"import_files/" + imgFileName;
                OnProgressTextOnly("Отправляем " + imgFileName);
                request = new RestRequest(beginOfUrl + dirImgFileName, Method.POST);
                request.AddParameter("image/jpeg", img.Image, ParameterType.RequestBody);
                response = client.Execute(request);
                DebugResponse(response);
            }
            Results.Add("Выгружено изображений: " + exportedImages.Count());

            OnProgressPlusOneTask("Выгружаем склад");
            SendFileXMLDoc(client, path, "offers.xml", rootOffers, mode);

            Results.Add("Выгрузка каталога товаров:");
            OnProgressPlusOneTask("Импорт каталога товаров на сайте.");
            SendImportCommand(client, path, "import.xml");
            Results.Add("Выгрузка склада и цен:");
            OnProgressPlusOneTask("Импорт склада и цен на сайте.");
            SendImportCommand(client, path, "offers.xml");
        }
Example #8
0
 public int GetForfeitId()
 {
     if (!_parametersProvider.ContainsParameter("forfeit_nomenclature_id"))
     {
         throw new InvalidProgramException("В параметрах базы не настроена номенклатура бутыли по умолчанию (forfeit_nomenclature_id).");
     }
     return(int.Parse(_parametersProvider.GetParameterValue("forfeit_nomenclature_id")));
 }