} //Execute private SchedulerDataModel LoadFromDb(int investorId) { try { SchedulerDataModel data = DB.FillFirst <SchedulerDataModel>("I_InvestorGetSchedulerData", CommandSpecies.StoredProcedure, new QueryParameter("InvestorID", investorId)); return(data); } catch (Exception ex) { Log.Warn(ex, "Failed to load scheduler data from DB"); throw; } //try } //LoadFromDb
public JsonResult UpdateData(EditParams2 param) { Models.mysqlConnector objConnector = new Models.mysqlConnector(); if (param.action == "insert" || (param.action == "batch" && param.added != null)) // this block of code will execute while inserting the appointments { var value = (param.action == "insert") ? param.value : param.added[0]; int intMax = db.ScheduleEventDatas.ToList().Count > 0 ? db.ScheduleEventDatas.ToList().Max(p => p.Id) : 1; DateTime startTime = Convert.ToDateTime(value.StartTime); DateTime endTime = Convert.ToDateTime(value.EndTime); SchedulerDataModel appointment = new SchedulerDataModel() { Id = intMax + 1, StartTime = startTime.ToLocalTime(), EndTime = endTime.ToLocalTime(), Job = value.Job, Attendees = value.Attendees, Event = value.Event, ResourceId = value.ResourceId, IsAllDay = value.IsAllDay, StartTimezone = value.StartTimezone, EndTimezone = value.EndTimezone, RecurrenceRule = value.RecurrenceRule, RecurrenceID = value.RecurrenceID, RecurrenceException = value.RecurrenceException, }; string resp = objConnector.AddEvent(appointment); ViewData["result"] = resp; } if (param.action == "remove" || (param.action == "batch" && param.deleted != null)) // this block of code will execute while removing the appointment { int key = Convert.ToInt32(param.key); SchedulerDataModel obj2 = param.deleted.FirstOrDefault(); SchedulerDataModel appointment = new SchedulerDataModel(); if (appointment != null) { ViewData["result"] = objConnector.DeleteEvent(obj2.Id); } } var data = objConnector.GetEvents(); return(Json(data, JsonRequestBehavior.AllowGet)); }
private async Task SearchForDisconnectedVehicles(CancellationToken cancellationToken) { while (true) { var topKey = double.NaN; SchedulerDataModel item = null; lock (locker) { if (JobQueue.Keys.Count == 0) { break; } topKey = this.JobQueue.Keys.FirstOrDefault(); // null pointer for no key if (JobQueue[topKey].NextSchedule.AddSeconds(-1) > DateTime.UtcNow && JobQueue[topKey].NextSchedule.Subtract(DateTime.UtcNow).TotalMilliseconds > 999.99d) { break; } item = JobQueue[topKey]; } int cntr = 0; while (!(await HttpHelper.SendStatus(item.VehicleId, 0, DateTime.UtcNow, cancellationToken)) && ++cntr > 10) // Stubborn message seder { await Task.Delay(TimeSpan.FromMilliseconds(1000), cancellationToken); } if (cntr > 10) { break; // if yes then message was not sent so give all a try in the next round } lock (locker) { _waitingList.Add(item.VehicleId, item); // wait until to get a response an get rescheduled JobQueue.Remove(topKey); // temporarily remove it from scheduled jobs break; } } }
public JsonResult CrudActions(SchedulerDataModel obj) { Models.mysqlConnector objConnector = new Models.mysqlConnector(); var value = obj; int intMax = db.ScheduleEventDatas.ToList().Count > 0 ? db.ScheduleEventDatas.ToList().Max(p => p.Id) : 1; DateTime startTime = Convert.ToDateTime(value.StartTime); DateTime endTime = Convert.ToDateTime(value.EndTime); string resp = ""; if (obj.action == "edit") { SchedulerDataModel appointment = new SchedulerDataModel() { Id = value.Id, StartTime = startTime.ToLocalTime(), EndTime = endTime.ToLocalTime(), Subject = value.Job, Attendees = value.Attendees, Event = value.Event, ResourceId = value.ResourceId, IsAllDay = value.IsAllDay, StartTimezone = value.StartTimezone, EndTimezone = value.EndTimezone, RecurrenceRule = value.RecurrenceRule, RecurrenceID = value.RecurrenceID, RecurrenceException = value.RecurrenceException, }; resp = objConnector.UpdateEvent(appointment); } else if (obj.action == "Add") { SchedulerDataModel appointment = new SchedulerDataModel() { StartTime = startTime.ToLocalTime(), EndTime = endTime.ToLocalTime(), Job = value.Subject, Attendees = value.Attendees, Event = value.Event, ResourceId = value.ResourceId, IsAllDay = value.IsAllDay, StartTimezone = value.StartTimezone, EndTimezone = value.EndTimezone, RecurrenceRule = value.RecurrenceRule, RecurrenceID = value.RecurrenceID, RecurrenceException = value.RecurrenceException, }; resp = objConnector.AddEvent(appointment); } else if (obj.action == "editFromDrop") { SchedulerDataModel appointment = new SchedulerDataModel() { Id = value.Id, //StartTime = startTime.ToLocalTime(), //EndTime = endTime.ToLocalTime(), attendeesAsString = value.attendeesAsString, //ResourceId = value.ResourceId, }; List <SchedulerDataModel> eventListData2 = new List <SchedulerDataModel>(); eventListData2 = objConnector.searchEventByTime(appointment); if (eventListData2 != null && eventListData2.Count > 0) { string[] _ArrAttendees = eventListData2.FirstOrDefault().attendeesAsString.Split(','); int existCount = 0; foreach (string valueString in _ArrAttendees) { if (valueString == value.attendeesAsString) { existCount++; break; } } if (existCount == 0) { string toModify = eventListData2.FirstOrDefault().attendeesAsString; toModify = toModify + "," + value.attendeesAsString; appointment.attendeesAsString = toModify; appointment.Id = eventListData2.FirstOrDefault().Id; resp = objConnector.updateByDrop(appointment); } } } ViewData["result"] = resp; return(Json(new string[] { }, JsonRequestBehavior.AllowGet)); }