/// <summary> /// This is the event handler which would be called in cases of alerts data available for either /// assigned tasks and/or managed tasks /// </summary> /// <param name="sender"></param> /// <param name="args"></param> void Provider_FetchTaskAlertsCompleteEvent( object sender, TaskAlertsFetchCompletedEventArgs args) { if (args.Error != null) { this.Status.Exception = args.Error; return; } if (args.Cancelled == true) { this.Status.Message = "The web service operation was cancelled by the user"; return; } TaskAlerts.AssignedTasksAlerts.BeginUpdate(); TaskAlerts.AssignedTasksAlertsNearFuture.BeginUpdate(); TaskAlerts.ManagedTasksAlerts.BeginUpdate(); TaskAlerts.ManagedTasksAlertsNearFuture.BeginUpdate(); UserOptions opts = UserOptions.Current; if (args.HasAssignedTasks) { //this.TaskAlerts.AssignedTasksAlerts.BeginUpdate(); this.TaskAlerts.AssignedTasksAlerts.Clear(); this.TaskAlerts.AssignedTasksAlertsNearFuture.Clear(); //Not writing a LINQ query here, //var queryAlerts = from t in args.AssignedTasks where string.IsNullOrEmpty(t.AlertTime) && select t; var querysorted = from t in args.AssignedTasks orderby TimeSpan.Parse(t.DueTime).Hours ascending select t; //foreach (TaskItem t in querysorted) // { // if (Alerts.DoesTaskQualifyForAssignedTaskAlert (t)) // { // this.TaskAlerts.AssignedTasksAlerts.Add(t.Clone()); // } // } TaskAlerts.EvaluateAndAddTasksForAlerts(querysorted); //this.TaskAlerts.AssignedTasksAlerts.EndUpdate(); } if (args.HasManagedTasks) { //this.TaskAlerts.ManagedTasksAlerts.BeginUpdate(); this.TaskAlerts.ManagedTasksAlerts.Clear(); this.TaskAlerts.ManagedTasksAlertsNearFuture.Clear(); var querysorted = from t in args.ManagedTasks orderby TimeSpan.Parse(t.DueTime).Hours ascending select t; //foreach (TaskItem t in querysorted) //{ // if (Alerts.DoesTaskQualifyForManagedTaskAlert(t)) // { // this.TaskAlerts.ManagedTasksAlerts.Add(t.Clone()); // } //} TaskAlerts.EvaluateAndAddTasksForAlerts(querysorted); //this.TaskAlerts.ManagedTasksAlerts.EndUpdate(); } TaskAlerts.AssignedTasksAlerts.EndUpdate(); TaskAlerts.AssignedTasksAlertsNearFuture.EndUpdate(); TaskAlerts.ManagedTasksAlerts.EndUpdate(); TaskAlerts.ManagedTasksAlertsNearFuture.EndUpdate(); }
private void LongOperationToFetchManagedTaskAlerts(object param) { Thread.Sleep(2000); if (FetchTaskAlertsCompleteEvent == null) return; TaskAlertsFetchCompletedEventArgs args; try { args = new TaskAlertsFetchCompletedEventArgs(); if (StubDataProvider.StubbedTasks == null) { StubDataProvider.StubbedTasks = StubDataProvider.CreateStubbedTasks(view); } args.HasAssignedTasks = false ; args.AssignedTasks = new List<TaskItem>(); args.HasManagedTasks = true ; args.ManagedTasks = new List<TaskItem>(); int escalationStartHour = 9; int count = 0; foreach (TaskItem t in StubDataProvider.StubbedTasks) { //t.EscalationTime = string.Format("{0}:00",escalationStartHour+count%4);//some arbitary computation to introduce a variability //t.DueTime = string.Format("{0}:00", escalationStartHour + count%5);//some variability //if (count % 7 == 0) //arbitary!! //{ // t.EscalationTime = null; //} t.EscalationTime = string.Format("{0}:00", escalationStartHour + count);//data with increasing order t.DueTime = string.Format("{0}:00", escalationStartHour + count);//data with increasing order args.ManagedTasks.Add(t.Clone()); count++; if (count == 5) break;//just add 1 managed task } /* args.ManagedTasks[0].EscalationTime = null; args.ManagedTasks[0].DueTime = string.Format ("{0}:{1}",DateTime.Now.Hour +2,DateTime.Now.Minute ); args.ManagedTasks[0].TaskName = "Task with null escalation time"; args.ManagedTasks[1].EscalationTime = "10:24"; args.ManagedTasks[1].DueTime = string.Format("{0}:{1}", DateTime.Now.Hour + 2, DateTime.Now.Minute); args.ManagedTasks[1].TaskName = "Task with non-nul escalation time of 10:24"; */ } catch (Exception ex) { args = new TaskAlertsFetchCompletedEventArgs(ex, true, null); args.AssignedTasks = new List<TaskItem>(); args.ManagedTasks = new List<TaskItem>();//return an empty collection nevertheless } Deployment.Current.Dispatcher.BeginInvoke(delegate() { FetchTaskAlertsCompleteEvent(this, args); }); }
void taskAlertsClientAssignedTasks_GetListItemsCompleted(object sender, BCheck.Data.BCheckLists.GetListItemsCompletedEventArgs e) { if (FetchTasksCompleteEvent == null) return; TaskAlertsFetchCompletedEventArgs args; try { if (e.Error != null) { args = new TaskAlertsFetchCompletedEventArgs(e.Error, e.Cancelled, null); } else { args = new TaskAlertsFetchCompletedEventArgs(); args.HasAssignedTasks = true; args.HasManagedTasks = false; args.AssignedTasks = new List<TaskItem>(); args.ManagedTasks = new List<TaskItem>(); IEnumerable<TaskItem> query = XmlToAlertObjects(e.Result); foreach (TaskItem t in query) { args.AssignedTasks.Add(t.Clone()); } } } catch (Exception ex) { args = new TaskAlertsFetchCompletedEventArgs(ex, true, null); args.AssignedTasks = new List<TaskItem>();//return an empty collection nevertheless } Deployment.Current.Dispatcher.BeginInvoke(delegate() { FetchTaskAlertsCompleteEvent(this, args); }); }
private void LongOperationToFetchAssignedTaskAlerts(object param) { Thread.Sleep(2000); if (FetchTaskAlertsCompleteEvent == null) return; TaskAlertsFetchCompletedEventArgs args; try { args = new TaskAlertsFetchCompletedEventArgs(); if (StubDataProvider.StubbedTasks == null) { StubDataProvider.StubbedTasks = StubDataProvider.CreateStubbedTasks(view); } args.HasAssignedTasks = true; args.AssignedTasks = new List<TaskItem>(); int escalationStartHour = 9; int count = 0; foreach (TaskItem t in StubDataProvider.StubbedTasks) { t.EscalationTime = string.Format("{0}:00", escalationStartHour + count % 4);//some arbitary computation to introduce a variability t.DueTime = string.Format("{0}:00", escalationStartHour + count % 5);//some variability if (count % 6 == 0) //arbitary!! { t.DueTime = null; } args.AssignedTasks.Add(t); count++; } args.HasManagedTasks = false; args.ManagedTasks= new List<TaskItem>(); } catch (Exception ex) { args = new TaskAlertsFetchCompletedEventArgs (ex, true, null); args.AssignedTasks = new List<TaskItem>(); args.ManagedTasks= new List<TaskItem>();//return an empty collection nevertheless } Deployment.Current.Dispatcher.BeginInvoke(delegate() { FetchTaskAlertsCompleteEvent(this, args); }); }
public void FetchAlerts() { UserTasks taskids = MasterLookupService.Current.GetUserTaskIDs(); if (taskids.AssignedTasksDueToday.Count + taskids.AssignedTasksOverdue.Count + taskids.ManagedTasksDueToday.Count + taskids.ManagedTasksIncomplete.Count < 400) { TaskAlertsFetchCompletedEventArgs alertargs; alertargs = new TaskAlertsFetchCompletedEventArgs(); string TasksCAMLQuery = CamlHelper.QueryMyTasksDueToday(taskids); alertargs.AssignedTasks = new List<TaskItem>(); alertargs.ManagedTasks = new List<TaskItem>(); MasterLookupService.Current.GetAlertsWithDetails(TasksCAMLQuery, tasks => { alertargs.HasAssignedTasks = false; foreach (var taskid in taskids.AssignedTasksDueToday) { var tasksassigned = tasks.Where(t => t.ID == int.Parse(taskid)); if (tasksassigned.Count() > 0) { TaskItem t = tasksassigned.First(); t.SetInitializationComplete(); alertargs.AssignedTasks.Add(t); alertargs.HasAssignedTasks = true; } } alertargs.HasManagedTasks = false; foreach (var taskid in taskids.ManagedTasksDueToday) { var tasksmanaged = tasks.Where(t => t.ID == int.Parse(taskid)); alertargs.HasManagedTasks = false; if (tasksmanaged.Count() > 0) { TaskItem t = tasksmanaged.First(); t.SetInitializationComplete(); alertargs.ManagedTasks.Add(t); alertargs.HasManagedTasks = true; } } Deployment.Current.Dispatcher.BeginInvoke(delegate() { FetchTaskAlertsCompleteEvent(this, alertargs); return; }); }); } else { FetchAlertsForOverLoadCondition(); } }