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"); } } }
/// <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()); }
/// <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); } }); }
/// <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(); }
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); } }