Ejemplo n.º 1
0
 public static List<TaskItem> ConvertTasksFromOMD(BCheck.Data.BCheckOMDQuery.ArrayOfRow rows)
 {
     List<TaskItem> items = new List<TaskItem>();
     foreach (BCheck.Data.BCheckOMDQuery.Row row in rows)
     {
         items.Add(ConvertTaskFromOMD(row));
     }
     return items;
 }
Ejemplo n.º 2
0
        public static TaskItem ConvertTaskFromOMD(BCheck.Data.BCheckOMDVQuery.Row row)
        {
            TaskItem item = new TaskItem();
            item.AlertTime = row.Alert_Time;
            item.AssignedTo = row.Assign_To;
            item.AttachmentUrl = row.Attachments;
            item.Comments = row.Comments;
            item.Complete = row.Completed_Y_N_ == "Y";
            item.CreatedLocal = Convert.ToDateTime(row.Create_Date_Local);
            item.CreatedUtc = Convert.ToDateTime(row.Created_UTC);
            item.DueTime = row.Due_Time;
            item.EscalationTime = row.Escalation_Level_1_Time;
            item.ID = (int)row.Task_ID;
            item.Kri = row.KPI;
            item.LinkToProcess = row.Link_To_Process;
            item.ManagementSignOff = row.Management_Sign_Off;
            item.Manager = row.Manager;
            item.Modified = TaskItem.GetModifiedTimeAsPerCurrentRegion(Convert.ToDateTime((DateTime)row.Modified)).ToString();
            item.ModifiedBy = row.Modified_By;
            item.Status = row.Status;
            item.TaskDescription = ParseDescription(row.High_Level_Description);
            item.TaskName = row.Task_Name;
            item.Version = (int)row.Version;

            item.ID1 = row.Unique_ID;
            item.BusinessArea = row.Business_Area;
            item.Functional = row.Functional;
            item.Frequency = row.Frequency;
            item.SpecificFrequency = row.Specific_Frequency;
            item.RandomFrequency = row.Random_Frequency;
            item.KeyControl = row.Key_Control;
            item.MatrixDefinition = row.Matrix_Definition;
            item.Locations = row.Locations;
            item.HolidayCalendar = row.Holiday_Calendar;
            item.AssetCategory = row.Asset_Category;
            item.ManagingDirector = row.Managing_Director;
            item.Director = row.Director;
            if (row.Regional_Offset == null) //Mar 11 fix, 
                item.RegionalOffset = 0;
            else
                item.RegionalOffset = (double)row.Regional_Offset;
            item.CreatedDateLocal = Convert.ToDateTime(row.Create_Date_Local);
            item.DueTimeUtc = Convert.ToDateTime(row.Due_Time_UTC);
            item.Checklist = row.Checklist;
           

            string pattern = @"<(.|\n)*?>";

            string stripped = Regex.Replace(item.TaskDescription, pattern, string.Empty);
            stripped = HttpUtility.HtmlDecode(stripped);
            item.TaskDescription = stripped;

            return item;
        }
Ejemplo n.º 3
0
        public static TaskItem ConvertTaskFromOMD(BCheck.Data.BCheckOMDQuery.Row row)
        {
            TaskItem item = new TaskItem();
            item.AlertTime = row.Alert_Time;
            item.AssignedTo = row.Assign_To;
            item.AttachmentUrl = attachmentConverter(row.Attachments);
            item.Comments = row.Comments;
            item.Complete = row.Completed_Y_N_ == "Y";
            item.CreatedLocal = Convert.ToDateTime(row.Create_Date_Local);
            item.CreatedUtc = Convert.ToDateTime(row.Created_UTC);
            item.DueTime = row.Due_Time;
            item.EscalationTime = row.Escalation_Level_1_Time;
            item.ID = (int)row.Task_ID;
            item.Kri = row.KPI;
            item.LinkToProcess = row.Link_To_Process;
            item.ManagementSignOff = row.Management_Sign_Off;
            item.Manager = row.Manager;
            item.Modified = row.Modified.ToString();
            item.ModifiedBy = row.Modified_By;
            item.Status = row.Status;
            item.TaskDescription = ParseDescription(row.High_Level_Description);
            item.TaskName = row.Task_Name;
            item.Version = (int)row.Version;       

            return item;
        }
Ejemplo n.º 4
0
        void GetUserInfoCompletedHandler(object sender, BCheck.Data.BCheckUserGroups.GetUserInfoCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                this.Status.AddToLog("Error fetching, SharePoint id", true);
                this.Status.AddToLog(e.Error.ToString(), true);
                return;
            }
            if (e.Cancelled == true)
            {
                return;
            }
            XElement xResult = e.Result;
            XElement el = e.Result;
            XNamespace ns = "http://schemas.microsoft.com/sharepoint/soap/directory/";
            var queryUserElement = from x in el.Descendants()
                                   where x.Name == ns + "User"
                                   select new { ID = (string)x.Attribute("ID") };
            if (queryUserElement.Count() == 0) throw new Exception("User information for current user could not be retrieved. Please refresh the page by pressing CTRL+F5");

            string strID = queryUserElement.First().ID;
            int iID;
            if (Int32.TryParse(strID, out iID) == false) throw new Exception("User information for current user could not be retrieved. Please refresh the page by pressing CTRL+F5");
            this.WssUserId = iID;
            this.Status.AddToLog(string.Format("WSS User ID:{0}", this.WssUserId), false);
            //this.RegionalSettings.Refresh();//May 8, please do this from ViewModel, so that it is in right sequence of all initializations
        }
Ejemplo n.º 5
0
        void wssGroups_GetGroupCollectionFromUserCompleted(object sender, BCheck.Data.BCheckUserGroups.GetGroupCollectionFromUserCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                XElement el = e.Result;
                XNamespace ns = "http://schemas.microsoft.com/sharepoint/soap/directory/";
                var queryGroups = from x in el.Descendants()
                                  where x.Name == ns + "Group"
                                  select new { GroupName = (string)x.Attribute("Name") };
                this.Status.AddToLog("Found group membership", false);
                foreach (var grp in queryGroups)
                {
                    this.MemberOfGroups.Add(grp.GroupName);
                    this.Status.AddToLog(grp.GroupName, false);
                }
                GetCurrentUserInfo(); //April 15, 2011. Do away with dependence on JS variable _spuserId

            }
            else
            {
                this.Status.AddToLog("error obtaining group membership information", true);
                this.Status.AddToLog(e.Error.ToString(), true);
            }
        }
Ejemplo n.º 6
0
        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);
            });
        }
Ejemplo n.º 7
0
        void listClient_GetListItemsCompleted(object sender, BCheck.Data.BCheckLists.GetListItemsCompletedEventArgs e)
        {
            if (FetchTasksCompleteEvent == null) return;


            TaskFetchCompletedEventArgs args;
            try
            {
                if (e.Error != null)
                {
                    args = new TaskFetchCompletedEventArgs(e.Error, e.Cancelled, null);
                }
                else
                {
                    args = new TaskFetchCompletedEventArgs();
                    args.Tasks = new List<TaskItem>();
                    XElement xresults = e.Result;
                    XNamespace ns = "#RowsetSchema";
                    var query = from x in xresults.Descendants()
                                where x.Name == ns + "row"
                                select new TaskItem
                                    {
                                        TaskName = (string)x.Attribute("ows_Title"),
                                        ID = (int?)x.Attribute("ows_ID") ?? 0,
                                        Version = (int?)x.Attribute("ows_owshiddenversion") ?? 1,
                                        TaskDescription = (string)x.Attribute("ows_High_x0020_Level_x0020_Descripti"),
                                        AssignedTo = (string)x.Attribute("ows_Assign_x0020_to"),
                                        Status = (string)x.Attribute("ows_Status"),
                                        DueTime = (string)x.Attribute("ows_Due_x0020_Time"),
                                        ManagementSignOff = (string)x.Attribute("ows_Management_x0020_Signoff"),
                                        Kri = (string)x.Attribute("ows_KPI"),
                                        Comments = (string)x.Attribute("ows_Comments"),
                                        CreatedUtc = (DateTime)x.Attribute("ows_Created"),
                                        AttachmentUrl = (string)x.Attribute("ows_Attachments"),
                                        KriDefinition = (string)x.Attribute("ows_Matrix_x0020_Definition"),
                                        AlertTime = (string)x.Attribute("ows_Alert_x0020_Time"),
                                        EscalationTime = (string)x.Attribute("ows_Escalation_x0020_Level_x0020_1_x"),
                                        LinkToProcess = (string)x.Attribute("ows_Link_x0020_to_x0020_Process"),
                                        Manager = (string)x.Attribute("ows_Manager"),
                                        CreatedLocal = TaskItem.GetCreatedTimeAsPerCurrentRegion((DateTime)x.Attribute("ows_Created")),
                                        Functional = (string)x.Attribute("ows_Functional"),
                                        BypassApproval = (string)x.Attribute("ows_BypassManagerApproval"),
                                        ManagerSelfApproval = (string)x.Attribute("ows_ManagerSelfApproval"),
                                        TaskOwner = (string)x.Attribute("ows_TaskOwner"),
                                        TimeForCompletion = (string)x.Attribute("ows_Time_x0020_Taken"),
                                        LateIncompleteReason = (string)x.Attribute("ows_LateIncompleteReason"),
                                        SystemOutrage = (string)x.Attribute("ows_SystemOutrage"),
                                        CompletedBy = (string)x.Attribute("ows_Completed_x0020_By")
                                    };
                    //Status = x.Attribute("ows_Status").Value,
                    //ManagementSignOff = x.Attribute("Management_x0020_Signoff").Value

                    //select (string)c.Element("Name");
                    /*
                     loop through all the XML entries and construct a TaskItem object here
                     */
                    foreach (TaskItem t in query)
                    {
                        t.CompletedBy = RegexMatchOrNull(t.CompletedBy);
                        t.SetInitializationComplete();
                        args.Tasks.Add(t);
                    }
                }

            }

            catch (Exception ex)
            {
                args = new TaskFetchCompletedEventArgs(ex, true, null);
                args.Tasks = new List<TaskItem>();//return an empty collection nevertheless 

            }
            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                if (e.UserState == null)
                {
                    FetchTasksCompleteEvent(this, args);
                    return;
                }
                if (e.UserState.Equals(IIsAction.QUERYSINGLE))//May10,when a single Task is udpated , fire back a different event. You do not want the complete UI to refresh
                {
                    TaskItemUpdateCompleteEventArgs evargs = new TaskItemUpdateCompleteEventArgs(null, false, null);
                    evargs.UpdatedTasks = args.Tasks;
                    TaskUpdateCompleteEvent(this, evargs);
                    return;
                }
            });
        }
Ejemplo n.º 8
0
        void listClient_GetListItemsOrgCompleted(object sender, BCheck.Data.BCheckLists.GetListItemsCompletedEventArgs e)
        {
            if (FetchBusinessAreasCompleteEvent == null) return;

            BusinessAreaEventArgs args;

            try
            {
                if (e.Error != null)
                {
                    args = new BusinessAreaEventArgs(e.Error, e.Cancelled, null);
                }
                else
                {
                    args = new BusinessAreaEventArgs();
                    args.BusinessAreas = new List<DropDownKeyPair>();
                    XElement xresults = e.Result;
                    XNamespace ns = "#RowsetSchema";

                    var query = from x in xresults.Descendants()
                                where x.Name == ns + "row"
                                select new DropDownKeyPair
                                {
                                    Value = (string)x.Attribute("ows_Title"),
                                    Index = (int?)x.Attribute("ows_ID") ?? 0,
                                };

                    foreach (DropDownKeyPair b in query)
                    {
                        args.BusinessAreas.Add(b);
                    }
                }

            }

            catch (Exception ex)
            {
                args = new BusinessAreaEventArgs(ex, true, null);
                args.BusinessAreas = new List<DropDownKeyPair>();

            }
            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                if (e.UserState == null)
                {
                    FetchBusinessAreasCompleteEvent(this, args);
                    return;
                }
            });

        }
Ejemplo n.º 9
0
        void peopleSearchClient_SearchPrincipalsCompleted(
                    object sender,
            BCheck.Data.BCheckPeople.SearchPrincipalsCompletedEventArgs e)
        {

            UserInfoFetchCompleteEventArgs args;
            if (FetchUserInfoCompleteEvent == null) return;
            args = new UserInfoFetchCompleteEventArgs(e.Error, e.Cancelled, e.UserState);
            args.UserInfoCollection = new List<UserInfo>();
            args.HasListOfUsers = false;
            if ((e.Cancelled == true) || (e.Error != null))
            {

            }
            else
            {
                foreach (BCheck.Data.BCheckPeople.PrincipalInfo p in e.Result)
                {
                    UserInfo u = new UserInfo
                    {
                        AccountName = p.AccountName,
                        Title = p.Title,
                        Department = p.Department,
                        DisplayName = p.DisplayName,
                        Email = p.Email,
                        UserID = p.UserInfoID
                    };

                    args.UserInfoCollection.Add(u);
                }
                args.HasListOfUsers = true;
            }



            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                System.Diagnostics.Debug.Assert(FetchUserInfoCompleteEvent != null);
                FetchUserInfoCompleteEvent(this, args);
            });
        }
Ejemplo n.º 10
0
        void customSrvClient_GetMySettingsCompleted(object sender, BCheck.Data.BCheckCustomServices.GetMySettingsCompletedEventArgs e)
        {
            if (this.FetchRegionalSettingsCompleteEvent == null) return;
            RegionalSettingsFetchCompleteEventArgs args = null;
            while (true)
            {
                if (e.Cancelled == true)
                {
                    args = new RegionalSettingsFetchCompleteEventArgs(null, true, e.UserState);
                    break;
                }
                if (e.Error != null)
                {
                    args = new RegionalSettingsFetchCompleteEventArgs(e.Error, true, e.UserState);
                    break;

                }
                args = new RegionalSettingsFetchCompleteEventArgs();
                if (e.Result.UserTimeZone != null)
                    args.UserTimeZone = new TimeZoneSetting { OffsetFromUtc = e.Result.UserTimeZone.OffsetFromUtc, TimeZoneName = e.Result.UserTimeZone.RegionDescription };
                if (e.Result.SiteTimeZone != null)
                    args.WebTimeZone = new TimeZoneSetting { OffsetFromUtc = e.Result.SiteTimeZone.OffsetFromUtc, TimeZoneName = e.Result.SiteTimeZone.RegionDescription };
                break;
            }

            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                FetchRegionalSettingsCompleteEvent(this, args);
            });
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Callback handler when a Task has been updated.
        /// Rationale: needed a place holder from where another query could be issued to fetch the updated Task item.
        /// Important to re-issue web service to fetch the Task, rather than rely on the XML fragment returned after UpdateListItem
        /// because of UTC options
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void UpdateSingleTaskItemCompletedHandler(
                object sender,
                BCheck.Data.BCheckLists.UpdateListItemsCompletedEventArgs e)
        {
            if ((e.Cancelled) || (e.Error != null))
            {
                TaskItemUpdateCompleteEventArgs args = new TaskItemUpdateCompleteEventArgs(e.Error, e.Cancelled, null);
                Deployment.Current.Dispatcher.BeginInvoke(delegate()
                {
                    TaskUpdateCompleteEvent(this, args);
                });

                return;
            }
            /*
             * loop throuhg the returned XML
             * find out if there were any errors
             * Issue another web service query to fetch complete data for the TaskItem that has got updated
             */
            XElement xresults = e.Result;
            XNamespace nsRow = "#RowsetSchema";
            XNamespace nsResults = "http://schemas.microsoft.com/sharepoint/soap/";
            var query = from x in xresults.Descendants()
                        where x.Name == nsResults + "Result"
                        select x;
            List<int> updatedtaskIDs = new List<int>();
            List<string> errorcodes = new List<string>();
            List<int> erroredtaskIDs = new List<int>();
            foreach (XElement result in query)
            {
                XElement error = result.Element(nsResults + "ErrorCode");
                string errorCode = error.Value;
                if (errorCode.Equals("0x00000000"))
                {
                    XElement row = result.Element(nsRow + "row");
                    int taskid = (int?)row.Attribute("ows_ID") ?? 0;
                    updatedtaskIDs.Add(taskid);
                }
                else
                {
                    //get the ErrorText element
                    XElement errorTxt = result.Element(nsResults + "ErrorText");
                    if (errorTxt != null) errorcodes.Add(errorTxt.Value);
                }
            }
            IEnumerable<TaskItem> updatedTasks = XmlToTaskObjects(xresults);
            foreach (TaskItem t in updatedTasks)
            {
                t.SetInitializationComplete();
            }
            Exception errors;
            if (errorcodes.Count != 0)
            {
                errors = new Exception(string.Format("Errors while updating {0} Task items, erorcode:{1}", errorcodes.Count, errorcodes[0]));
                TaskItemUpdateCompleteEventArgs evargs = new TaskItemUpdateCompleteEventArgs(errors, false, null);
                evargs.Errors = errorcodes;
                foreach (TaskItem t in updatedTasks) { evargs.UpdatedTasks.Add(t); }
                Deployment.Current.Dispatcher.BeginInvoke(delegate()
                {
                    TaskUpdateCompleteEvent(this, evargs);
                });
                return;
            }
            if (updatedTasks.Count() == 0)
            {
                TaskItemUpdateCompleteEventArgs evargs = new TaskItemUpdateCompleteEventArgs(null, false, null);
                evargs.Errors = new List<string>();
                Deployment.Current.Dispatcher.BeginInvoke(delegate()
                {
                    TaskUpdateCompleteEvent(this, evargs);
                });
                return;
            }
            //re-fetch the TaskItem data once more
            string url = this.ConstructUrlParams(IIsAction.QUERYSINGLE, null, 0);
            TaskItem firstTask = updatedTasks.First();
            EndpointAddress addr = new EndpointAddress(url);//URL params injected, Mar 29
            BasicHttpBinding bnd = new BasicHttpBinding();
            bnd.MaxBufferSize = InitParams.Current.MaxBufferSize;
            bnd.MaxReceivedMessageSize = bnd.MaxBufferSize;


            BCheckLists.ListsSoapClient listClient = new BCheck.Data.BCheckLists.ListsSoapClient(bnd, addr);
            string queryOptionsXml = "<QueryOptions><DateInUtc>TRUE</DateInUtc><IncludeAttachmentUrls>TRUE</IncludeAttachmentUrls><IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns></QueryOptions>";
            XElement queryOptions = XElement.Parse(queryOptionsXml);
            string maxrows = BCheck.Data.InitParams.Current.MaxCamlRows.ToString();
            string queryXml = "";
            queryXml = CamlHelper.QueryFetchTaskWithID(firstTask.ID);
            XElement queryXe = XElement.Parse(queryXml);
            string viewFieldsXml = "";
            viewFieldsXml = CamlHelper.VIEWFIELDS_MYTASKSVERBOSE;
            XElement viewFields = XElement.Parse(viewFieldsXml);

            //listClient.GetListItemsCompleted +=
            //    delegate(object sender, BCheck.Data.BCheckLists.GetListItemsCompletedEventArgs e)
            //    {
            //    };
            listClient.GetListItemsCompleted += new EventHandler<BCheck.Data.BCheckLists.GetListItemsCompletedEventArgs>(listClient_GetListItemsCompleted);
            //this.FetchTasksCompleteEvent +=
            //        delegate(object sender1, TaskFetchCompletedEventArgs args1)
            //        {
            //            TaskItemUpdateCompleteEventArgs evargs = new TaskItemUpdateCompleteEventArgs(null, false, null);
            //            evargs.UpdatedTasks = args1.Tasks;  
            //            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            //            {
            //                TaskUpdateCompleteEvent(this, evargs);
            //            });
            //        };

            //objectstate=QUERYSINGLE, so that the event handler knows to invoke the right call back
            TaskUpdateCompleteEvent(this, null);
            //listClient.GetListItemsAsync(
            //        InitParams.Current.ListName, "", queryXe, viewFields,
            //        maxrows, queryOptions, null, IIsAction.QUERYSINGLE);

        }
Ejemplo n.º 12
0
        void assignedTasksUpdateClient_UpdateListItemsCompleted(
                            object sender,
                            BCheck.Data.BCheckLists.UpdateListItemsCompletedEventArgs e)
        {
            if ((e.Cancelled) || (e.Error != null))
            {
                TaskItemUpdateCompleteEventArgs args = new TaskItemUpdateCompleteEventArgs(e.Error, e.Cancelled, null);
                Deployment.Current.Dispatcher.BeginInvoke(delegate()
                {
                    TaskUpdateCompleteEvent(this, args);
                });

                return;
            }

            /*
             * run through the e.Result
             * find out the rows that were updated and those were not
             * look into the <ErrorCode> flag for each of the <Result> elements
             * look into the ID attribute in the <Result> elements
             * prepare a CAML query to re-fetch all successfully updated elements
             */

            XElement xresults = e.Result;
            XNamespace nsRow = "#RowsetSchema";
            XNamespace nsResults = "http://schemas.microsoft.com/sharepoint/soap/";
            var query = from x in xresults.Descendants()
                        where x.Name == nsResults + "Result"
                        select x;
            List<int> updatedtaskIDs = new List<int>();
            List<string> errorcodes = new List<string>();
            List<int> erroredtaskIDs = new List<int>();
            foreach (XElement result in query)
            {
                XElement error = result.Element(nsResults + "ErrorCode");
                string errorCode = error.Value;
                if (errorCode.Equals("0x00000000"))
                {
                    XElement row = result.Element(nsRow + "row");
                    int taskid = (int?)row.Attribute("ows_ID") ?? 0;
                    updatedtaskIDs.Add(taskid);
                }
                else
                {
                    //get the ErrorText element
                    XElement errorTxt = result.Element(nsResults + "ErrorText");
                    if (errorTxt != null) errorcodes.Add(errorTxt.Value);
                }
            }

            //IEnumerable<TaskItem> result = XmlToTaskObjects(null);
            Exception errors;
            if (errorcodes.Count == 0)
            {
                errors = null;
            }
            else
            {
                errors = new Exception(string.Format("Errors while updating {0} Task items, erorcode:{1}", errorcodes.Count, errorcodes[0]));
            }

            TaskItemUpdateCompleteEventArgs evargs = new TaskItemUpdateCompleteEventArgs(errors, false, null);
            evargs.Errors = errorcodes;
            IEnumerable<TaskItem> updatedTasks = XmlToTaskObjects(xresults);
            foreach (TaskItem t in updatedTasks)
            {
                t.SetInitializationComplete();
                evargs.UpdatedTasks.Add(t);
            }

            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                TaskUpdateCompleteEvent(this, evargs);
            });
        }
Ejemplo n.º 13
0
        void attachmentsUpdatedClient_GetListItemsCompleted(object sender, BCheck.Data.BCheckLists.GetListItemsCompletedEventArgs e)
        {
            if ((e.Cancelled) && (e.Error != null))
            {
                TaskItemUpdateCompleteEventArgs args = new TaskItemUpdateCompleteEventArgs(e.Error, e.Cancelled, null);
                Deployment.Current.Dispatcher.BeginInvoke(delegate()
                {
                    TaskUpdateCompleteEvent(this, args);
                });

                return;
            }

            IEnumerable<TaskItem> result = XmlToTaskObjects(e.Result);
            TaskItemUpdateCompleteEventArgs evargs = new TaskItemUpdateCompleteEventArgs(null, false, null);
            foreach (TaskItem t in result)
            {
                evargs.UpdatedTasks.Add(t);
            }

            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                TaskUpdateCompleteEvent(this, evargs);
            });
        }
Ejemplo n.º 14
0
        void attachmentsClient_AddAttachmentCompleted(object sender,
                BCheck.Data.BCheckLists.AddAttachmentCompletedEventArgs e)
        {
            if ((e.Cancelled) || (e.Error != null))
            {
                TaskItemUpdateCompleteEventArgs args = new TaskItemUpdateCompleteEventArgs(e.Error, e.Cancelled, null);
                Deployment.Current.Dispatcher.BeginInvoke(delegate()
                {
                    TaskUpdateCompleteEvent(this, args);
                });

                return;
            }

            //on success, fetch the updated task
            this.GetAttachments(BCheck.Data.ViewModel.Current.SelectedTask);

            //string url = this.ConstructUrlParams(IIsAction.QUERYSINGLE, null, 0);
            //EndpointAddress addr = new EndpointAddress(url);//URL params injected, Mar 29
            //BasicHttpBinding bnd = new BasicHttpBinding();
            //bnd.MaxBufferSize = InitParams.Current.MaxBufferSize;
            //bnd.MaxReceivedMessageSize = bnd.MaxBufferSize;


            //Object[] paramarray = (Object[])e.UserState;
            //TaskItem tUpdated = (TaskItem)paramarray[0];

            //BCheckLists.ListsSoapClient attachmentsUpdatedClient = new BCheck.Data.BCheckLists.ListsSoapClient(bnd, addr);
            //attachmentsUpdatedClient.GetListItemsCompleted += new EventHandler<BCheck.Data.BCheckLists.GetListItemsCompletedEventArgs>(attachmentsUpdatedClient_GetListItemsCompleted);

            //string queryXml = "";
            //string viewFieldsXml = "";

            //queryXml = CamlHelper.QueryFetchTaskWithID(tUpdated.ID);
            //viewFieldsXml = CamlHelper.VIEWFIELDS_MYTASKSVERBOSE;
            //XElement query = XElement.Parse(queryXml);
            //XElement viewFields = XElement.Parse(viewFieldsXml);

            //string queryOptionsXml = "<QueryOptions><DateInUtc>TRUE</DateInUtc><IncludeAttachmentUrls>TRUE</IncludeAttachmentUrls></QueryOptions>";
            //XElement queryOptions = XElement.Parse(queryOptionsXml);
            //string maxrows = "1";
            //attachmentsUpdatedClient.GetListItemsAsync(
            //            InitParams.Current.ListName, "", query, viewFields, maxrows, queryOptions, null, paramarray);

        }
Ejemplo n.º 15
0
 void attachmentsClient_GetAttachmentCollectionCompleted(object sender, BCheck.Data.BCheckLists.GetAttachmentCollectionCompletedEventArgs e)
 {
     BCheck.Data.ViewModel.Current.IsUpdating = false;
     XDocument xmlData = XDocument.Parse(e.Result.ToString());
     XNamespace ns = xmlData.Root.Name.Namespace;
     var attachments = from attach in xmlData.Descendants(ns + "Attachment")
                       select attach.Value.ToString();
     if (attachments.Count() > 0)
     {
         BCheck.Data.ViewModel.Current.SelectedTask.AttachmentUrl = "True";
     }
     else
     {
         BCheck.Data.ViewModel.Current.SelectedTask.AttachmentUrl = "False";
     }
     BCheck.Data.ViewModel.Current.SelectedTask.AttachmentsURLs = e.Result.ToString();
 }
Ejemplo n.º 16
0
        void peopleResolveClient_ResolvePrincipalsCompleted(
                        object sender,
                        BCheck.Data.BCheckPeople.ResolvePrincipalsCompletedEventArgs e)
        {
            UserInfoFetchCompleteEventArgs args;
            if (FetchUserInfoCompleteEvent == null) return;
            args = new UserInfoFetchCompleteEventArgs(e.Error, e.Cancelled, e.UserState);
            args.UserInfoCollection = new List<UserInfo>();
            args.HasListOfUsers = false;
            if ((e.Cancelled == true) || (e.Error != null))
            {

            }
            else
            {
                if (e.Result.Count == 0)
                {
                    args.ResolvedUser = null;
                }
                else
                {
                    UserInfo u = new UserInfo
                    {
                        Title = e.Result[0].Title,
                        UserID = e.Result[0].UserInfoID,
                        Email = e.Result[0].Email,
                        DisplayName = e.Result[0].DisplayName,
                        Department = e.Result[0].Department,
                        AccountName = e.Result[0].AccountName
                    };
                    if (u.UserID < 0)
                        args.ResolvedUser = null;
                    else
                        args.ResolvedUser = u;
                    args.HasListOfUsers = false;
                }
            }

            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                FetchUserInfoCompleteEvent(this, args);
            });
        }
Ejemplo n.º 17
0
        void omdBridge_QueryTasksCompleted(object sender, BCheck.Data.BCheckOMDQuery.QueryTasksCompletedEventArgs e)
        {
            TaskFetchCompletedEventArgs args = null;

            if (e.Cancelled == true)
            {
                args = new TaskFetchCompletedEventArgs(null, true, null);
                args.Tasks = new List<TaskItem>();//return an empty collection nevertheless 
            }
            else if (e.Error != null)
            {
                args = new TaskFetchCompletedEventArgs(e.Error, false, null);
                args.Tasks = new List<TaskItem>();//return an empty collection nevertheless 
                ViewModel.Current.Status.AddToLog(e.Error.ToString(), true);
            }
            else
            {
                args = new TaskFetchCompletedEventArgs(null, false, null);
                if (e.Result.rows == null)
                    args.Tasks = new List<TaskItem>();//return an empty collection nevertheless 
                else
                {
                    args.Tasks = TaskItemFactory.ConvertTasksFromOMD(e.Result.rows);
                    ArchiveHelper.ProcessMessage(e.Result.message);
                }
            }

            if (FetchTasksCompleteEvent != null)
                FetchTasksCompleteEvent(this, args);
        }
Ejemplo n.º 18
0
        void listSummary_GetListItemsCompleted(object sender, BCheck.Data.BCheckLists.GetListItemsCompletedEventArgs e)
        {
            if (FetchSummaryCompleteEvent == null) return;
            SummaryFetchCompletedEventArgs args = null;

            if (e.Cancelled == true)
            {
                args = new SummaryFetchCompletedEventArgs(null, true, null);
                args.Summary = null;
            }


            if ((e.Cancelled != true) && (e.Error != null))
            {
                args = new SummaryFetchCompletedEventArgs(null, false, null) { Summary = new SummaryView() };
                //compute statistics here
            }

            if ((e.Cancelled != true) && (e.Error == null))
            {
                args = new SummaryFetchCompletedEventArgs(e.Error, false, null);
                XElement xresults = e.Result;
                XNamespace ns = "#RowsetSchema";

                var queryalltasks = from x in xresults.Descendants()
                                    where x.Name == ns + "row"
                                    select new TaskItem
                                    {
                                        TaskName = (string)x.Attribute("ows_Title"),
                                        ID = (int?)x.Attribute("ows_ID") ?? 0,
                                        AssignedTo = (string)x.Attribute("ows_Assign_x0020_to"),
                                        Status = (string)x.Attribute("ows_Status"),
                                        DueTime = (string)x.Attribute("ows_Due_x0020_Time"),
                                        ManagementSignOff = (string)x.Attribute("ows_Management_x0020_Signoff"),
                                        CreatedUtc = (DateTime)x.Attribute("ows_Created"),
                                        CreatedLocal = TaskItem.GetCreatedTimeAsPerCurrentRegion((DateTime)x.Attribute("ows_Created"))
                                    };

                args.Summary = new SummaryView();
                View userState = (View)e.UserState;
                if (userState == View.vwAssignedTasks)
                {
                    //HelperProcessSummaryResultsAssignedTasks( queryalltasks,args.Summary);
                    //Mar 11 release. Using a central routine for computing Summary
                    SummaryView.ComputeSummaryViewFromCollectionOfTasks(queryalltasks, args.Summary);
                }

                if (userState == View.vwManagedTasks)
                {
                    //Mar 11 release. Using a central routine for computing Summary
                    //HelperProcessSummaryResultsManagedTasks( queryalltasks,args.Summary);
                    SummaryView.ComputeSummaryViewFromCollectionOfTasks(queryalltasks, args.Summary);
                }

            }


            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                FetchSummaryCompleteEvent(this, args);
            });

        }