예제 #1
0
        public TaskScheduleModel CreateContinuousSchedule(TaskScheduleRequestModel model)
        {
            var schedule = new TaskScheduleContinuousModel
            {
                TaskId         = model.TaskId,
                IdlePeriod     = 15,
                IdlePeriodType = "minutes",
            };

            var idleSchedule = model.Schedules
                               .FirstOrDefault(x => x.Type.Equals("idle", StringComparison.OrdinalIgnoreCase));

            if (idleSchedule == null || idleSchedule.Periods == null)
            {
                return(schedule);
            }

            var periods = idleSchedule.Periods.ToArray();

            if (!periods.Any())
            {
                return(schedule);
            }

            var periodType = idleSchedule.PeriodType;

            if (string.IsNullOrWhiteSpace(periodType))
            {
                return(schedule);
            }

            var periodTypes = new[] { "seconds", "minutes", "hours", "days" };

            if (!periodTypes.Contains(periodType, StringComparer.OrdinalIgnoreCase))
            {
                return(schedule);
            }

            schedule.IdlePeriod     = periods.First();
            schedule.IdlePeriodType = periodType;
            return(schedule);
        }
예제 #2
0
        public TaskScheduleModel CreateDefaultModel(ExecutionTypeElement element)
        {
            var model = new TaskScheduleContinuousModel
            {
                TaskId         = element.Id,
                IdlePeriod     = 15,
                IdlePeriodType = "minutes",
            };

            foreach (var subModel in element.ExecutionList)
            {
                model.AddScheduleItem(new TaskScheduleItemModel
                {
                    TaskId = subModel.Id,
                    Order  = subModel.Order,
                });
            }

            return(model);
        }