public ActionResult <UpdateScheduleExecutionTimeResponse> Post(UpdateScheduleExecutionTime request) { GXSchedule s = host.Connection.SelectById <GXSchedule>(request.Id); s.ExecutionTime = request.Time; host.Connection.Update(GXUpdateArgs.Update(s, c => c.ExecutionTime)); host.SetChange(TargetType.Schedule, DateTime.Now); return(new UpdateScheduleExecutionTimeResponse()); }
private async void DoWork(object state) { _logger.LogWarning("Timed Background Service is working."); try { DateTime now = DateTime.Now; ListSchedulesResponse list = null; using (System.Net.Http.HttpResponseMessage response = await Helpers.client.PostAsJsonAsync(Startup.ServerAddress + "/api/schedule/ListSchedules", new ListSchedules())) { Helpers.CheckStatus(response); list = await response.Content.ReadAsAsync <ListSchedulesResponse>(); } List <GXTask> tasks = new List <GXTask>(); foreach (GXSchedule it in list.Schedules) { GXDateTime dt = new GXDateTime(it.Start); if (it.ExecutionTime == DateTime.MinValue) { it.ExecutionTime = now; } if (Equals(dt, now)) { _logger.LogTrace("+"); foreach (GXObject obj in it.Objects) { foreach (GXAttribute a in obj.Attributes) { GXTask t = new GXTask() { Object = obj, TaskType = TaskType.Read, Index = a.Index }; tasks.Add(t); } } it.ExecutionTime = now; UpdateScheduleExecutionTime us = new UpdateScheduleExecutionTime(); us.Id = it.Id; us.Time = now; using (System.Net.Http.HttpResponseMessage response = await Helpers.client.PostAsJsonAsync(Startup.ServerAddress + "/api/schedule/UpdateScheduleExecutionTime", us)) { Helpers.CheckStatus(response); UpdateScheduleExecutionTime r = await response.Content.ReadAsAsync <UpdateScheduleExecutionTime>(); } } else if (now.Minute == 0) { Console.WriteLine(dt.ToFormatString()); Console.WriteLine(now.ToString()); } } if (tasks.Count != 0) { AddTask at = new AddTask(); at.Actions = tasks.ToArray(); using (System.Net.Http.HttpResponseMessage response = await Helpers.client.PostAsJsonAsync(Startup.ServerAddress + "/api/task/AddTask", at)) { Helpers.CheckStatus(response); } } } catch (Exception ex) { _logger.LogInformation(ex.Message); } }