示例#1
0
        public ActionResult CreateCronTrigger()
        {
            var vm = new CronTriggerViewModel();

            vm.Jobs = JobRepository.GetJobs(null).ToSelectList();
            return(View(vm));
        }
示例#2
0
 public ActionResult EditCronTrigger(CronTriggerViewModel model)
 {
     if (!ModelState.IsValid)
     {
         return(View(model));
     }
     TriggerRepository.UpdateCronTrigger(model.ToDto());
     return(RedirectToAction("trigger-manager"));
 }
示例#3
0
        public ActionResult EditCronTrigger(int id)
        {
            var dto = TriggerRepository.GetCronGrigger(id);

            if (dto != null)
            {
                var vm = CronTriggerViewModel.Create(dto);
                vm.Jobs = JobRepository.GetJobs(null).ToSelectList();
                return(View(vm));
            }
            return(RedirectToAction("cron-trigger-manager"));
        }
示例#4
0
        public async Task <IActionResult> Edit(string name, string group, bool clone = false)
        {
            if (!EnsureValidKey(name, group))
            {
                return(BadRequest());
            }

            var key     = new TriggerKey(name, group);
            var trigger = await GetTrigger(key);

            var jobDataMap = new JobDataMapModel()
            {
                Template = JobDataMapItemTemplate
            };

            var model = await TriggerPropertiesViewModel.Create(Scheduler);

            model.IsNew           = clone;
            model.IsCopy          = clone;
            model.Type            = trigger.GetTriggerType();
            model.Job             = trigger.JobKey.ToString();
            model.TriggerName     = trigger.Key.Name;
            model.TriggerGroup    = trigger.Key.Group;
            model.OldTriggerName  = trigger.Key.Name;
            model.OldTriggerGroup = trigger.Key.Group;

            if (clone)
            {
                model.TriggerName += " - Copy";
            }

            // don't show start time in the past because rescheduling cause triggering missfire policies
            model.StartTimeUtc = trigger.StartTimeUtc > DateTimeOffset.UtcNow ? trigger.StartTimeUtc.UtcDateTime.ToDefaultFormat() : null;

            model.EndTimeUtc = trigger.EndTimeUtc?.UtcDateTime.ToDefaultFormat();

            model.CalendarName = trigger.CalendarName;
            model.Description  = trigger.Description;
            model.Priority     = trigger.Priority;

            model.MisfireInstruction = trigger.MisfireInstruction;

            switch (model.Type)
            {
            case TriggerType.Cron:
                model.Cron = CronTriggerViewModel.FromTrigger((ICronTrigger)trigger);
                break;

            case TriggerType.Simple:
                model.Simple = SimpleTriggerViewModel.FromTrigger((ISimpleTrigger)trigger);
                break;

            case TriggerType.Daily:
                model.Daily = DailyTriggerViewModel.FromTrigger((IDailyTimeIntervalTrigger)trigger);
                break;

            case TriggerType.Calendar:
                model.Calendar = CalendarTriggerViewModel.FromTrigger((ICalendarIntervalTrigger)trigger);
                break;

            default:
                throw new InvalidOperationException("Unsupported trigger type: " + trigger.GetType().AssemblyQualifiedName);
            }

            jobDataMap.Items.AddRange(trigger.GetJobDataMapModel(Services));

            return(View("Edit", new TriggerViewModel()
            {
                Trigger = model, DataMap = jobDataMap
            }));
        }