private RecurrenceSchedule GetRecurrenceSchedule(ScheduledTriggerRequest request) { RecurrenceSchedule schedule = new RecurrenceSchedule(); if (request.Schedule.Hours != null) { schedule.Hours = request.Schedule.Hours; } if (request.Schedule.Minutes != null) { schedule.Minutes = request.Schedule.Minutes; } if (request.Frequency.Equals(Constants.Schedule.Month, StringComparison.InvariantCultureIgnoreCase)) { if (request.Schedule.ScheduleRecurrences != null && request.Schedule.ScheduleRecurrences.Count > 0) { schedule.MonthlyOccurrences = GetMonthlyScheduleRecurrence(request.Schedule.ScheduleRecurrences); } else { schedule.MonthDays = request.Schedule.MonthDays; } } else if (request.Frequency.Equals(Constants.Schedule.Week, StringComparison.InvariantCultureIgnoreCase)) { schedule.WeekDays = GetScheduleWeekDays(request.Schedule.WeekDays); } return(schedule); }
internal async Task ScheduleTrigger(ScheduledTriggerRequest request) { DataFactoryManagementClient client = await GetDataFactoryManagementClient(); ScheduleTrigger scheduleTrigger = GetScheduledTrigger(request); if (scheduleTrigger != null) { // Now, create the trigger by invoking the CreateOrUpdate method TriggerResource triggerResource = new TriggerResource() { Properties = scheduleTrigger }; await client.Triggers.CreateOrUpdateAsync(request.ResourceGroup, request.DataFactoryName, request.TriggerName, triggerResource); if (request.Activate) { // Activate the trigger client.Triggers.Start(request.ResourceGroup, request.DataFactoryName, request.TriggerName); } } else { throw new Exception("Unable to create scheduled trigger"); } }
private ScheduleTrigger GetScheduledTrigger(ScheduledTriggerRequest request) { ScheduleTrigger trigger = new ScheduleTrigger() { Pipelines = GetPipelineForScheduleTrigger(request.Pipelines), Recurrence = GetScheduledTriggerRecurrence(request) }; return(trigger); }
private ScheduleTriggerRecurrence GetScheduledTriggerRecurrence(ScheduledTriggerRequest request) { ScheduleTriggerRecurrence recurrence = new ScheduleTriggerRecurrence() { TimeZone = "UTC" }; recurrence.StartTime = request.StartDate.HasValue ? request.StartDate.Value.ToUniversalTime() : request.StartDate; recurrence.EndTime = request.EndDate.HasValue ? request.EndDate.Value.ToUniversalTime() : request.EndDate; recurrence.Frequency = request.GetFrequency(); recurrence.Interval = request.FrequencyInterval; if (request.Schedule != null) { recurrence.Schedule = GetRecurrenceSchedule(request); } return(recurrence); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = "Trigger/Schedule")] ScheduledTriggerRequest request, ILogger log) { if (request != null) { try { TriggerManager manager = new TriggerManager(); await manager.ScheduleTrigger(request); return(new OkResult()); } catch (Exception ex) { return(new JsonResult(ex.Message) { StatusCode = StatusCodes.Status500InternalServerError }); } } return(new BadRequestResult()); }