public async override Task Run() { await base.Run(); try { IsContinue(); DateTime dateTime = _paramDescriptors.ConvertDate(RunDateTime); Log.Info($"Задача {TaskId} : Загрузка валют за дату {dateTime.ToShortDateString()}"); var xmlDocument = await _cbrDownloader.DownloadForeignExchange(dateTime); Log.Info($"Задача {TaskId} : Загрузка валют завершена"); IsContinue(); var saverJson = TaskAction.GetSaverJson(TaskId); if (saverJson is not null) { Log.Info($"Задача {TaskId} : Сохранение значений"); _xmlSaver.Deserialize(saverJson).Save(xmlDocument); Log.Info($"Задача {TaskId} : Значения сохранены"); var connection = _xmlSaver.Deserialize(saverJson).Connection; var task = TaskAction.GetKarmaDownloadJob().FirstOrDefault(z => z.TaskId == TaskId); var template = TaskAction.GetCalculationJson(task.TaskTemplateId); var saveTask = new SaveForeignExchange(null, null, null, null, null); var parameters = saveTask.GetParamDescriptors(); parameters.SetDat(SaveForeignExchange.RunDateTime, dateTime); parameters.SetStr(SaveForeignExchange.File, connection); var json = parameters.SerializeJson(); Log.Info($"Создаем задачу {saveTask.TaskTypes.ToDbAttribute()} с параметрами {json}"); var newTaskId = TaskAction.CreateTaskAction(TaskStatuses.Creating, TaskTypes.DownloadCurrenciesCbrf.ToDbAttribute(), template.TaskTemplateFolderId, json, TaskTypes.SaveForeignExchange); TaskAction.InsertPipelineTasks(TaskId, newTaskId); Log.Info($"Создали зависимость между {TaskId}->{newTaskId}"); } Log.Info($"Задача {TaskId} : Задачи завершена"); Finished(); } catch (OperationCanceledException) { Log.Info($"Задача отменена {TaskId}"); } catch (Exception ex) { Log.Error(ex); } finally { IsAliveTokenSource.Cancel(); } }
public async void TestDownloadForeignExchange() { await _cbrDownloader.DownloadForeignExchange(constDate); }