public async Task <bool> Run(TrainingNotifierQueueItem item) { var logic = new TrainingNotifierLogic(); await logic.Process(item); return(true); }
public async Task ProcessAsync(TrainingNotiferCommand command, IQuidjiboProgress progress, CancellationToken cancellationToken) { try { progress.Report(1, $"Starting the {Name} Task"); //await Task.Run(async () => //{ var _trainingService = Bootstrapper.GetKernel().Resolve <ITrainingService>(); var logic = new TrainingNotifierLogic(); var trainings = await _trainingService.GetTrainingsToNotifyAsync(DateTime.UtcNow); if (trainings != null && trainings.Any()) { _logger.LogInformation("TrainingNotifer::Trainings to Notify: " + trainings.Count()); foreach (var training in trainings) { var qi = new TrainingNotifierQueueItem(); qi.Training = training; progress.Report(3, "TrainingNotifer::Processing Training Notification: " + qi.Training.TrainingId); var result = await logic.Process(qi); if (result.Item1) { _logger.LogInformation($"TrainingNotifer::Processed Training Notification {qi.Training.TrainingId} successfully."); } else { _logger.LogInformation($"TrainingNotifer::Failed to Process Training Notification {qi.Training.TrainingId} error {result.Item2}"); } } } //}, cancellationToken); progress.Report(100, $"Finishing the {Name} Task"); } catch (Exception ex) { Resgrid.Framework.Logging.LogException(ex); _logger.LogError(ex.ToString()); } }
public async Task ProcessAsync(TrainingNotiferCommand command, IQuidjiboProgress progress, CancellationToken cancellationToken) { progress.Report(1, $"Starting the {Name} Task"); await Task.Factory.StartNew(() => { var _trainingService = Bootstrapper.GetKernel().Resolve <ITrainingService>(); var logic = new TrainingNotifierLogic(); var trainings = _trainingService.GetTrainingsToNotify(DateTime.UtcNow); if (trainings != null && trainings.Any()) { _logger.LogInformation("TrainingNotifer::Trainings to Notify: " + trainings.Count()); foreach (var training in trainings) { var qi = new TrainingNotifierQueueItem(); qi.Training = training; progress.Report(3, "TrainingNotifer::Processing Training Notification: " + qi.Training.TrainingId); var result = logic.Process(qi); if (result.Item1) { _logger.LogInformation($"TrainingNotifer::Processed Training Notification {qi.Training.TrainingId} successfully."); } else { _logger.LogInformation($"TrainingNotifer::Failed to Process Training Notification {qi.Training.TrainingId} error {result.Item2}"); } } } }, cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Default); progress.Report(100, $"Finishing the {Name} Task"); }
public void Run(TrainingNotifierQueueItem item) { var logic = new TrainingNotifierLogic(); logic.Process(item); }