Пример #1
0
        public void TestAutoSto()
        {
            DateTime date = DateTime.Now;

            if (date.Day == 08)
            {
                var description = @"Добрый день!" +
                                  "Требуется замена ТОНЕРА на МФУ Xerox VersaLink B7030 в каб.237 сер.№3399683695," +
                                  "серв.№77068-4-403-3399683695," +
                                  "инв.№22-100135(по договоренности с менеджером Денисом).";
                var modelSto = new ModelParametrSupport()
                {
                    Discription = description,
                    IdMfu       = 50,
                    IdUser      = 96,
                    Login       = "******",
                    Password    = "******",
                    IdTemplate  = 7
                };
                Inventarka inventory = new Inventarka();
                var        models    = inventory.ServiceSupport(modelSupport: modelSto);
                if (models.Result.Step3ResponseSupport != null)
                {
                }
            }
        }
        /// <summary>
        /// Загрузка файла на шаге 3
        /// </summary>
        /// <param name="modelSupport">Модель запроса на сервис</param>
        /// <param name="pathSaveReport">Путь сохранения файла</param>
        public void CreateStoParametersStep3(ref ModelParametrSupport modelSupport, string pathSaveReport)
        {
            var modelParameterInputStep3 = modelSupport.TemplateSupport.Where(temple => temple.NameStepSupport == "Step3" && temple.TemplateParametrType != null).ToArray();

            foreach (var templateStep3 in modelParameterInputStep3)
            {
                if (templateStep3.TemplateParametrType.Equals("AnalisysEpo") && modelSupport.IdAnalisysEpo != 0)
                {
                    var idAnalisys = modelSupport.IdAnalisysEpo;
                    var analysis   = Inventory.AnalysisEpoAndInventarkas.First(id => id.Id == idAnalisys);
                    templateStep3.ParameterStep3   = CreateReportEpo(pathSaveReport, analysis);
                    templateStep3.NameGuidParametr = string.Format(templateStep3.NameGuidParametr, analysis.NameFileXlsx, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
                }
            }
        }
Пример #3
0
 /// <summary>
 /// Создание полной заявки на СТП Support.Tax.Nalog.ru
 /// </summary>
 /// <param name="modelSupport">Модель параметров</param>
 /// <returns></returns>
 public string CreateFullSupportTax(ModelParametrSupport modelSupport)
 {
     StepTraining();
     GenerateParameterResponse("//form[@action='/requests/create.php?step=1']", modelSupport.TemplateSupport.Where(param => param.NameStepSupport == "Step1").ToArray());
     Steps(Step1Post, "POST", DatesBytes);
     GenerateParameterResponse("//form[@action='/requests/create.php?step=2']", modelSupport.TemplateSupport.Where(param => param.NameStepSupport == "Step2").ToArray());
     Steps(Step2Post, "POST", DatesBytes);
     GenerateParameterResponse("//form[@action='/requests/create.php?step=3']", modelSupport.TemplateSupport.Where(param => param.NameStepSupport == "Step3").ToArray(), true);
     if (DatesBytesFile != null)
     {
         Steps(Step3UploadFile, "POST", DatesBytesFile);
     }
     Steps(Step3Post, "POST", DatesBytes);
     return(ReturnResponseWebStep3());
 }
Пример #4
0
        /// <summary>
        /// Автоматическая задача сбора оборудования из PrintServer
        ///  Задача поиска оборудования из PrintServer и добавление их в БД
        /// </summary>
        public async void FindAllPrintServer(object sender, EventArgs e)
        {
            await Task.Factory.StartNew(() =>
            {
                try
                {
                    var selectEvent     = new Select();
                    var eventParameters = selectEvent.SelectEvent(5);
                    DateTime date       = DateTime.Now;
                    if (date.Hour == eventParameters.HoursX && date.Minute == eventParameters.MinutesX)
                    {
                        try
                        {
                            var parameter = eventParameters.ParametersEvent.Split(';');
                            var processFindPrintServer = new ProcessSynchronizationPrintServer(parameter[0].Trim(), parameter[1].Trim());
                            var result = processFindPrintServer.SynchronizationPrintServerStart();
                            if (result != null)
                            {
                                var resultFilter = result.Where(r => r.StatusFindPrintServerAndSynchronization == 1).ToList();
                                var selectModel  = new Select();
                                var addObjectDb  = new EfDatabase.Inventory.BaseLogic.AddObjectDb.AddObjectDb();
                                var idUser       = selectModel.SelectIdUser(parameter[2].Trim());
                                Inventarka.Inventarka inventory = new Inventarka.Inventarka();
                                foreach (var synchronizationPrintServer in resultFilter)
                                {
                                    var allSerialNumberModel = selectModel.TypeModelAndIdSelect(synchronizationPrintServer.SerNumberPrintServer);
                                    if ((synchronizationPrintServer.IsTonerLow &&
                                         synchronizationPrintServer.HasToner &&
                                         !synchronizationPrintServer.IsSupportApplication && allSerialNumberModel != null)
                                        ^
                                        (!synchronizationPrintServer.IsTonerLow &&
                                         !synchronizationPrintServer.HasToner &&
                                         !synchronizationPrintServer.IsSupportApplication && allSerialNumberModel != null))
                                    {
                                        try
                                        {
                                            //Создать заявку
                                            var modelSto = new ModelParametrSupport()
                                            {
                                                Discription = $"Добрый день! Требуется замена {allSerialNumberModel.TypeToner} на {allSerialNumberModel.Item} {allSerialNumberModel.NameModel} в каб. {allSerialNumberModel.NumberKabinet} сер.№ {allSerialNumberModel.SerNum}, сервис.№ {allSerialNumberModel.ServiceNum}, инв.№ {allSerialNumberModel.InventarNum} . Примечание c PrintServer к описанию : {synchronizationPrintServer.DescriptionPrinter}",
                                                IdUser      = idUser,
                                                Login       = parameter[2].Trim(),
                                                Password    = parameter[3].Trim(),
                                                IdTemplate  = (allSerialNumberModel.Item == "МФУ") ? 6 : 5
                                            };
                                            switch (allSerialNumberModel.Item)
                                            {
                                            case "МФУ":
                                                modelSto.IdMfu = allSerialNumberModel.Id;
                                                break;

                                            case "Принтер":
                                                modelSto.IdPrinter = allSerialNumberModel.Id;
                                                break;
                                            }
                                            var resultStep3 = inventory.ServiceSupport(modelSupport: modelSto);
                                            synchronizationPrintServer.IsSupportApplication         = true;
                                            synchronizationPrintServer.DateCreateSupportApplication = DateTime.Now;
                                            if (resultStep3.Result.Step3ResponseSupport != null)
                                            {
                                                Loggers.Log4NetLogger.Info(new Exception($"Создали автоматически заявку на СТП! Для оборудования {allSerialNumberModel.NameModel} сер.№ {allSerialNumberModel.SerNum}"));
                                            }
                                        }
                                        catch (Exception exception)
                                        {
                                            Loggers.Log4NetLogger.Error(exception);
                                        }
                                    }
                                    if (!synchronizationPrintServer.IsTonerLow && synchronizationPrintServer.HasToner)
                                    {
                                        //Обнулить результат
                                        synchronizationPrintServer.IsSupportApplication         = false;
                                        synchronizationPrintServer.DateCreateSupportApplication = null;
                                    }
                                    addObjectDb.UpdateSynchronizationPrintServer(synchronizationPrintServer);
                                }
                                selectModel.Dispose();
                                addObjectDb.Dispose();
                            }
                        }
                        catch (Exception exception)
                        {
                            Loggers.Log4NetLogger.Error(exception);
                        }
                    }
                    selectEvent.Dispose();
                }
                catch (Exception ex)
                {
                    Loggers.Log4NetLogger.Error(ex);
                }
            });
        }
Пример #5
0
        /// <summary>
        /// Генерация параметров для запроса на СТО
        /// </summary>
        /// <param name="modelSupport">Модель запроса на сервис</param>
        public void GenerateTemplateUrlParameter(ref ModelParametrSupport modelSupport)
        {
            SelectSql select = new SelectSql();

            ModelSelect model = new ModelSelect {
                LogicaSelect = select.SqlSelectModel(28)
            };

            if (modelSupport.IdSysBlock == 0)
            {
                var idUser = modelSupport.IdUser;
                modelSupport.IdSysBlock = Inventory.SysBlocks.Where(x => x.IdUser == idUser).Select(sel => sel.IdSysBlock).FirstOrDefault();
            }
            modelSupport.TemplateSupport = Inventory.Database.SqlQuery <TemplateSupport1>(model.LogicaSelect.SelectUser,
                                                                                          new SqlParameter(model.LogicaSelect.SelectedParametr.Split(',')[0], modelSupport.IdTemplate)).ToArray();
            if (modelSupport?.TemplateSupport != null && modelSupport?.TemplateSupport.Length > 0)
            {
                var description = modelSupport.Discription;
                modelSupport.TemplateSupport.Where(discription => discription.NameGuidParametr == "UF_DESCRIPTION").ToList().ForEach(d => d.Parametr = description);
                var modelParameterInput = modelSupport.TemplateSupport.Where(temple => temple.NameStepSupport == "Step2" && temple.TemplateParametrType != null);

                foreach (var template in modelParameterInput)
                {
                    if (template.TemplateParametrType.Equals("User") && modelSupport.IdUser != 0)
                    {
                        template.Parametr = Inventory.Database.SqlQuery <string>(template.SelectParametr,
                                                                                 new SqlParameter("IdUser", modelSupport.IdUser)).FirstOrDefault();
                    }
                    if (template.TemplateParametrType.Equals("SysBlock") && modelSupport.IdSysBlock != 0)
                    {
                        template.Parametr = Inventory.Database.SqlQuery <string>(template.SelectParametr,
                                                                                 new SqlParameter("IdSysBlock", modelSupport.IdSysBlock)).FirstOrDefault();
                    }
                    if (template.TemplateParametrType.Equals("Monitors") && modelSupport.IdMonitor != 0)
                    {
                        template.Parametr = Inventory.Database.SqlQuery <string>(template.SelectParametr,
                                                                                 new SqlParameter("IdMonitor", modelSupport.IdMonitor)).FirstOrDefault();
                    }
                    if (template.TemplateParametrType.Equals("Printer") && modelSupport.IdPrinter != 0)
                    {
                        template.Parametr = Inventory.Database.SqlQuery <string>(template.SelectParametr,
                                                                                 new SqlParameter("IdPrinter", modelSupport.IdPrinter)).FirstOrDefault();
                    }
                    if (template.TemplateParametrType.Equals("Mfu") && modelSupport.IdMfu != 0)
                    {
                        template.Parametr = Inventory.Database.SqlQuery <string>(template.SelectParametr,
                                                                                 new SqlParameter("IdMfu", modelSupport.IdMfu)).FirstOrDefault();
                    }
                    if (template.TemplateParametrType.Equals("Scanner") && modelSupport.IdScanner != 0)
                    {
                        template.Parametr = Inventory.Database.SqlQuery <string>(template.SelectParametr,
                                                                                 new SqlParameter("IdScaner", modelSupport.IdScanner)).FirstOrDefault();
                    }
                    if (template.TemplateParametrType.Equals("Telephon") && modelSupport.IdTelephon != 0)
                    {
                        template.Parametr = Inventory.Database.SqlQuery <string>(template.SelectParametr,
                                                                                 new SqlParameter("IdTelephon", modelSupport.IdTelephon)).FirstOrDefault();
                    }
                    if (template.TemplateParametrType.Equals("DomainUser") && modelSupport.IdUser != 0)
                    {
                        var personnelNumberAndGroupOtdel = Inventory.Database.SqlQuery <string>(template.SelectParametr,
                                                                                                new SqlParameter("IdUser", modelSupport.IdUser)).FirstOrDefault();
                        if (template.NameParametrType.Equals("Group"))
                        {
                            template.Parametr = FindGroupAccess(personnelNumberAndGroupOtdel).Aggregate((element, next) => element + (string.IsNullOrWhiteSpace(element) ? string.Empty : ",") + next);
                        }
                        if (template.NameParametrType.Equals("GroupOtdel"))
                        {
                            template.Parametr = FindIdentytyGroup(personnelNumberAndGroupOtdel.Replace("№", "№ "));
                        }

                        if (template.NameParametrType.Contains("GroupOtdelBoss"))
                        {
                            template.Parametr = FindFullPathActiveDirectory(personnelNumberAndGroupOtdel);
                        }
                    }
                    if (template.TemplateParametrType.Equals("DomainSysBlock") && modelSupport.IdSysBlock != 0)
                    {
                        var nameComputer = Inventory.Database.SqlQuery <string>(template.SelectParametr, new SqlParameter("IdSysBlock", modelSupport.IdSysBlock)).FirstOrDefault();
                        var parameters   = template.Parametr.Split('/');
                        template.Parametr = IsCheckComputer(nameComputer) ? parameters[0] : parameters[1];
                    }
                }
            }
            else
            {
                throw new InvalidOperationException($"Фатальная ошибка отсутствует шаблон запроса на CTO по id {modelSupport.IdTemplate}!");
            }
            select.Dispose();
        }
Пример #6
0
 public void TestBool()
 {
     try
     {
         // var selectEvent = new Select();
         var eventParameters = "	\\\\i7751-sys030; 10.177.172.; 7751-00-099; Qwerty12345!";
         //DateTime date = DateTime.Now;
         //if (date.Hour == eventParameters.HoursX && date.Minute == eventParameters.MinutesX)
         //{
         try
         {
             Inventarka inventory = new Inventarka();
             var        parameter = eventParameters.Split(';');
             var        processFindPrintServer = new ProcessSynchronizationPrintServer(parameter[0].Trim(), parameter[1].Trim());
             var        result = processFindPrintServer.SynchronizationPrintServerStart();
             if (result != null)
             {
                 var resultFilter = result.Where(r => r.StatusFindPrintServerAndSynchronization == 1).ToList();
                 var selectModel  = new Select();
                 var addObjectDb  = new EfDatabase.Inventory.BaseLogic.AddObjectDb.AddObjectDb();
                 var idUser       = selectModel.SelectIdUser(parameter[2].Trim());
                 var typeModel    = new[] { 2, 5, 7, 8, 27 };      //Типы моделей больших аппаратов
                 foreach (var synchronizationPrintServer in resultFilter)
                 {
                     try
                     {
                         var allSerialNumberModel = selectModel.TypeModelAndIdSelect(synchronizationPrintServer.SerNumberPrintServer);
                         if ((synchronizationPrintServer.IsTonerLow &&
                              synchronizationPrintServer.HasToner &&
                              !synchronizationPrintServer.IsSupportApplication && allSerialNumberModel != null)
                             ^
                             (!synchronizationPrintServer.IsTonerLow &&
                              !synchronizationPrintServer.HasToner &&
                              !synchronizationPrintServer.IsSupportApplication && allSerialNumberModel != null))
                         {
                             //Создать заявку
                             var modelSto = new ModelParametrSupport()
                             {
                                 Discription = $"Добрый день! Требуется замена ТОНЕРА на {allSerialNumberModel.Item} {allSerialNumberModel.NameModel} в каб. {allSerialNumberModel.NumberKabinet} сер.№ {allSerialNumberModel.SerNum} , сервисный.№ {allSerialNumberModel.ServiceNum} ,инв.№ {allSerialNumberModel.InventarNum}",
                                 IdMfu       = allSerialNumberModel.Id,
                                 IdUser      = idUser,
                                 Login       = parameter[2].Trim(),
                                 Password    = parameter[3].Trim(),
                                 IdTemplate  = (allSerialNumberModel.Item == "МФУ") ? 6 : 5
                             };
                             var resultStep3 = inventory.ServiceSupport(modelSto);
                             synchronizationPrintServer.IsSupportApplication         = true;
                             synchronizationPrintServer.DateCreateSupportApplication = DateTime.Now;
                             if (resultStep3.Result.Step3ResponseSupport != null)
                             {
                                 //  Loggers.Log4NetLogger.Info(new Exception($"Создали автоматически заявку на СТП! Для оборудования {allSerialNumberModel.NameModel} сер.№ {allSerialNumberModel.SerNum}"));
                             }
                         }
                         if (!synchronizationPrintServer.IsTonerLow && synchronizationPrintServer.HasToner)
                         {
                             //Обнулить результат
                             synchronizationPrintServer.IsSupportApplication         = false;
                             synchronizationPrintServer.DateCreateSupportApplication = null;
                         }
                         addObjectDb.UpdateSynchronizationPrintServer(synchronizationPrintServer);
                     }
                     catch (Exception exception)
                     {
                         //  Loggers.Log4NetLogger.Error(exception);
                     }
                 }
                 selectModel.Dispose();
                 addObjectDb.Dispose();
             }
         }
         catch (Exception exception)
         {
             // Loggers.Log4NetLogger.Error(exception);
         }
         // }
         //  selectEvent.Dispose();
     }
     catch (Exception ex)
     {
         // Loggers.Log4NetLogger.Error(ex);
     }
 }