/// <summary> /// Формирование заявок пляшем от АИС 3 /// </summary> /// <param name="userRule">Спаршенные данные АИС 3</param> /// <returns></returns> public async Task <ModelPathReport> GenerateTemplateRule(UserRules userRule) { var report = new ModelPathReport(); try { return(await Task.Factory.StartNew(() => { var sql = new SelectSql(); var templateword = new TemplateUserRule(); var ruletemplate = new RuleTemplate() { SenderUsers = new SenderUsers() }; var modelselect = sql.SendersUsers(ref ruletemplate); sql.UserRuleModel(ref ruletemplate, userRule, modelselect); templateword.CreateDocum(_parametrService.ReportMassTemplate, ruletemplate, null); report.Note = "Заявки запущены и сохраняются в папку"; report.Url = _parametrService.ReportMassTemplate; return report; })); } catch (Exception e) { Loggers.Log4NetLogger.Error(e); report.Note = e.Message; return(report); } }
/// <summary> /// Сервис подготовки документов ошибок о миграции /// </summary> /// <param name="json">Json отчет</param> /// <returns></returns> public async Task <ModelPathReport> MigrationReports(MigrationParse json) { var report = new ModelPathReport(); try { return(await Task.Factory.StartNew(() => { var docmigration = new DocumentMigration(); docmigration.MigrationDoc(_parametrService.ConectWork, _parametrService.ReportMassTemplate, json); report.Note = "Документы для печати запущены и сохраняются в папку "; report.Url = _parametrService.ReportMassTemplate; return report; })); } catch (Exception e) { Loggers.Log4NetLogger.Error(e); report.Note = e.Message; return(report); } }
/// <summary> /// Модель загрузки Шаблонов в БД по шаблону /// </summary> /// <typeparam name="T">Шаблон class to xml</typeparam> /// <param name="modelTemplate">Шаблон</param> /// <param name="idProcedureLoad">УН процедуры загрузки</param> /// <param name="idProcessBlock">УН процедуры процесса</param> /// <returns></returns> public ModelPathReport LoadModelToDataBase <T>(T modelTemplate, int idProcedureLoad, int idProcessBlock) { var report = new ModelPathReport(); try { var isProcessTrue = Inventory.EventProcesses.FirstOrDefault(complete => complete.Id == idProcessBlock); if (isProcessTrue == null) { throw new InvalidOperationException($"Фатальная ошибка отсутствует процесс Id - {idProcessBlock} в системе!"); } if (isProcessTrue.IsComplete == true) { var addObjectDb = new AddObjectDb.AddObjectDb(); var task = Task.Run(() => { ModelSelect model = new ModelSelect { LogicaSelect = SqlSelectModel(idProcedureLoad) }; XmlReadOrWrite xml = new XmlReadOrWrite(); addObjectDb.IsProcessComplete(idProcessBlock, false); using (var transaction = Inventory.Database.BeginTransaction()) { try { Inventory.Database.CommandTimeout = 18000; Inventory.Database.ExecuteSqlCommand(model.LogicaSelect.SelectUser, new SqlParameter(model.LogicaSelect.SelectedParametr.Split(',')[0], SqlDbType.Xml) { Value = new SqlXml(new XmlTextReader(xml.ClassToXml(modelTemplate, modelTemplate.GetType()), XmlNodeType.Document, null)) }); transaction.Commit(); Inventory.Dispose(); } catch (Exception e) { transaction.Rollback(); Inventory.Dispose(); Loggers.Log4NetLogger.Error(e); } } }); task.ConfigureAwait(true).GetAwaiter().OnCompleted((() => { addObjectDb.IsProcessComplete(idProcessBlock, true); addObjectDb.Dispose(); })); report.Note = $"{isProcessTrue.NameProcess} запущен!"; } else { report.Note = $"{isProcessTrue.NameProcess} уже запущен ожидайте окончание процесса!"; } } catch (Exception e) { report.Note = e.Message; Loggers.Log4NetLogger.Error(e); } return(report); }