Exemple #1
0
        public async Task CanGetAllTasksAsync()
        {
            var tasks = await _scheduleTaskService.GetAllTasksAsync();

            tasks.Count.Should().Be(4);
            tasks.Any(p => p.Enabled == false).Should().BeFalse();
            tasks.Any(p => p.Id == _task.Id).Should().BeFalse();

            tasks = await _scheduleTaskService.GetAllTasksAsync(true);

            tasks.Count.Should().Be(7);
            tasks.Any(p => p.Enabled).Should().BeTrue();
            tasks.Any(p => p.Id == _task.Id).Should().BeTrue();
        }
Exemple #2
0
        public async System.Threading.Tasks.Task TearDown()
        {
            var tasks = await _scheduleTaskService.GetAllTasksAsync(true);

            foreach (var task in tasks.Where(t => t.Type.Equals(_task.Type, StringComparison.InvariantCultureIgnoreCase)))
            {
                await _scheduleTaskService.DeleteTaskAsync(task);
            }
        }
        /// <summary>
        /// Prepare paged schedule task list model
        /// </summary>
        /// <param name="searchModel">Schedule task search model</param>
        /// <returns>Schedule task list model</returns>
        public virtual async Task <ScheduleTaskListModel> PrepareScheduleTaskListModelAsync(ScheduleTaskSearchModel searchModel)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            //get schedule tasks
            var scheduleTasks = (await _scheduleTaskService.GetAllTasksAsync(true)).ToPagedList(searchModel);

            //prepare list model
            var model = await new ScheduleTaskListModel().PrepareToGridAsync(searchModel, scheduleTasks, () =>
            {
                return(scheduleTasks.SelectAwait(async scheduleTask =>
                {
                    //fill in model values from the entity
                    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");
                    }

                    return scheduleTaskModel;
                }));
            });

            return(model);
        }
Exemple #4
0
        public async System.Threading.Tasks.Task <IDictionary <int, string> > GetCronTasksAsync()
        {
            return(await _staticCacheManager.GetAsync(new CacheKey(CronTasksCacheKey.CRON_TASKS_ALL_KEY), async() =>
            {
                var result = new Dictionary <int, string>();

                var cronExpressionGas = _genericAttributeRepository.Table
                                        .Where(ga => ga.KeyGroup == nameof(ScheduleTask) && !string.IsNullOrEmpty(ga.Value) && ga.Key == CronTasksDefaults.CronExpressionGenericAttributeKey)
                                        .ToList();

                var scheduleTasks = (await _scheduleTaskService.GetAllTasksAsync(true)).Where(t => cronExpressionGas.Select(ga => ga.EntityId).Contains(t.Id)).ToList();
                foreach (var scheduleTask in scheduleTasks)
                {
                    string cronExpression = cronExpressionGas.First(ga => ga.EntityId == scheduleTask.Id).Value;
                    result.Add(scheduleTask.Id, cronExpression);
                }

                return result;
            }));
        }
        public async Task <IActionResult> Configure()
        {
            var settings = await _settingService.LoadSettingAsync <CronTasksSettings>(
                await _storeContext.GetActiveStoreScopeConfigurationAsync()
                );

            var model = new CronTasksSettingsModel
            {
                ActiveStoreScopeConfiguration = await _storeContext.GetActiveStoreScopeConfigurationAsync()
            };

            model.CronTaskSearchModel.SetGridPageSize();

            foreach (var scheduleTask in await _scheduleTaskService.GetAllTasksAsync(true))
            {
                model.CronTaskSearchModel.AddCronTaskModel.AvailableScheduleTasks.Add(new SelectListItem()
                {
                    Text  = scheduleTask.Name,
                    Value = scheduleTask.Id.ToString()
                });
            }

            return(View("~/Plugins/EllaSoftware.CronTasks/Views/Configure.cshtml", model));
        }