private async Task <IEnumerable <CronTaskModel> > GetCronTaskModelsAsync(IDictionary <int, string> cronTasks) { var result = new List <CronTaskModel>(); foreach (var ct in cronTasks) { var scheduleTask = await _scheduleTaskService.GetTaskByIdAsync(ct.Key); if (scheduleTask == null) { continue; } var scheduleTaskModel = scheduleTask.ToModel <ScheduleTaskModel>(); //convert dates to the user time if (scheduleTask.LastStartUtc.HasValue) { scheduleTaskModel.LastStartUtc = (await _dateTimeHelper .ConvertToUserTimeAsync(scheduleTask.LastStartUtc.Value, DateTimeKind.Utc)).ToString("G"); } if (scheduleTask.LastEndUtc.HasValue) { scheduleTaskModel.LastEndUtc = (await _dateTimeHelper .ConvertToUserTimeAsync(scheduleTask.LastEndUtc.Value, DateTimeKind.Utc)).ToString("G"); } if (scheduleTask.LastSuccessUtc.HasValue) { scheduleTaskModel.LastSuccessUtc = (await _dateTimeHelper .ConvertToUserTimeAsync(scheduleTask.LastSuccessUtc.Value, DateTimeKind.Utc)).ToString("G"); } var cronNextOccurence = _cronTaskService.GetQuartzJobNextOccurrence(scheduleTask.Id); var model = new CronTaskModel() { ScheduleTaskId = scheduleTask.Id, ScheduleTaskModel = scheduleTaskModel, CronExpression = ct.Value, ExecutionStatus = _cronTaskService.GetQuartzJobExecutionStatus(scheduleTask.Id), CronNextOccurrence = cronNextOccurence.HasValue ? (await _dateTimeHelper.ConvertToUserTimeAsync(cronNextOccurence.Value, DateTimeKind.Utc)).ToString("G") : string.Empty }; result.Add(model); } return(result); }
public async Task <IActionResult> UpdateCronTask([Validate] CronTaskModel model) { if (!ModelState.IsValid) { return(ErrorJson(ModelState.SerializeErrors())); } var scheduleTask = await _scheduleTaskService.GetTaskByIdAsync(model.ScheduleTaskId) ?? throw new ArgumentException("No schedule task found with the specified id"); await _cronTaskService.UpdateCronTaskAsync(scheduleTask.Id, model.CronExpression); return(new NullJsonResult()); }