Ejemplo n.º 1
0
        public async Task <bool> Run(TrainingNotifierQueueItem item)
        {
            var logic = new TrainingNotifierLogic();
            await logic.Process(item);

            return(true);
        }
Ejemplo n.º 2
0
        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());
            }
        }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
        public void Run(TrainingNotifierQueueItem item)
        {
            var logic = new TrainingNotifierLogic();

            logic.Process(item);
        }