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 override async Task Run() { await base.Run(); try { Log.Info($"Задача {TaskId} : Задача загрузки ruonia из ЦБ начата"); IsContinue(); DateTime dateTime = _paramDescriptors.ConvertDate(RunDateTime); Log.Info($"Задача {TaskId} : загрузка ruonia за дату {dateTime.ToShortDateString()}"); var xmlDocument = await _cbrDownloader.DownloadRuonia(dateTime); Log.Info($"Задача {TaskId} : загрузка ruonia завершена"); IsContinue(); var saverJson = TaskAction.GetSaverJson(TaskId); if (saverJson is not null) { Log.Info($"Задача {TaskId} : сохранение значений"); _xmlSaver.Deserialize(saverJson).Save(xmlDocument); Log.Info($"Задача {TaskId} : значения сохранены"); } Log.Info($"Задача {TaskId} : Задача загрузки ruonia из ЦБ закончена"); } catch (OperationCanceledException) { Log.Info($"Задача отменена {TaskId}"); } catch (Exception ex) { Log.Info($"Задача завершилась с ошибкой {TaskId}"); Log.Error(ex); } finally { IsAliveTokenSource.Cancel(); } }
public override async Task Run() { await base.Run(); try { Log.Info($"Задача {TaskId} : Задача финансовых инструментов начата"); IsContinue(); var typeInstrument = _paramDescriptors.ConvertStr(InstrumentType); var date = _paramDescriptors.ConvertDate(RunDateTime); if (typeInstrument == "shares") { Log.Info($"Задача {TaskId} : загрузка акций"); var shares = await DownloadShares(date); Log.Info($"Задача {TaskId} : загрузка акций завершена"); var saverJson = TaskAction.GetSaverJson(TaskId); if (saverJson is not null) { Log.Info($"Задача {TaskId} : сохранение акций"); var connection = _xmlSaver.Deserialize(saverJson).Connection; connection = connection.Replace(".xml", ".csv"); _csvSaver.Save(shares, connection); Log.Info($"Задача {TaskId} : закончена сохранение акций"); } } if (typeInstrument == "bonds") { Log.Info($"Задача {TaskId} : загрузка облигаций"); var bonds = await DownloadBonds(date); Log.Info($"Задача {TaskId} : загрузка облигаций завершена"); var saverJson = TaskAction.GetSaverJson(TaskId); if (saverJson is not null) { Log.Info($"Задача {TaskId} : сохранение облигаций"); var connection = _xmlSaver.Deserialize(saverJson).Connection; connection = connection.Replace(".xml", ".csv"); _csvSaver.Save(bonds, connection); Log.Info($"Задача {TaskId} : закончена сохранение облигаций"); } } Log.Info($"Задача {TaskId} : Задача финансовых инструментов закончена"); } catch (OperationCanceledException) { Log.Info($"Задача отменена {TaskId}"); } catch (Exception ex) { Log.Info($"Задача завершилась с ошибкой {TaskId}"); Log.Error(ex); } finally { IsAliveTokenSource.Cancel(); } }