public async Task <IActionResult> Edit(string name, string group, bool clone = false) { if (!EnsureValidKey(name, group)) { return(BadRequest()); } var jobKey = JobKey.Create(name, group); var job = await GetJobDetail(jobKey); var jobModel = new JobPropertiesViewModel() { }; var jobDataMap = new JobDataMapModel() { Template = JobDataMapItemTemplate }; jobModel.IsNew = clone; jobModel.IsCopy = clone; jobModel.JobName = name; jobModel.Group = group; jobModel.GroupList = (await Scheduler.GetJobGroupNames()).GroupArray(); jobModel.Type = job.JobType.RemoveAssemblyDetails(); jobModel.TypeList = Services.Cache.JobTypes; jobModel.Description = job.Description; jobModel.Recovery = job.RequestsRecovery; if (clone) { jobModel.JobName += " - Copy"; } var jobData = job.GetJobDataMapModel(Services); var customData = jobData.Where(x => x.Name == "CustomData").FirstOrDefault(); if (customData != null) { jobModel.CustomFormDataJsonModel = customData.Value.ToString(); //jobData.Remove(customData); } jobDataMap.Items.AddRange(jobData); return(View("Edit", new { Job = jobModel, DataMap = jobDataMap })); }
public async Task <IActionResult> New() { var model = await TriggerPropertiesViewModel.Create(Scheduler); var jobDataMap = new JobDataMapModel { Template = JobDataMapItemTemplate }; model.IsNew = true; model.Type = TriggerType.Cron; model.Priority = 5; return(View("Edit", new TriggerViewModel { Trigger = model, DataMap = jobDataMap })); }
public async Task <IActionResult> New() { var job = new JobPropertiesViewModel { IsNew = true }; var jobDataMap = new JobDataMapModel { Template = JobDataMapItemTemplate }; job.GroupList = (await Scheduler.GetJobGroupNames()).GroupArray(); job.Group = SchedulerConstants.DefaultGroup; job.TypeList = Services.Cache.JobTypes; return(View("Edit", new JobViewModel { Job = job, DataMap = jobDataMap })); }
public async Task <IActionResult> Trigger(string name, string group) { if (!EnsureValidKey(name, group)) { return(BadRequest()); } var jobKey = JobKey.Create(name, group); var job = await GetJobDetail(jobKey); var jobDataMap = new JobDataMapModel { Template = JobDataMapItemTemplate }; ViewBag.JobName = name; ViewBag.Group = group; jobDataMap.Items.AddRange(job.GetJobDataMapModel(Services)); return(View(jobDataMap)); }
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 })); }