Ejemplo n.º 1
0
        /// <summary>
        /// Fetch Accounts details.
        /// Extracts Accounts details from XML response and binds data to Observable Collection.
        /// </summary>
        public async Task <ObservableCollection <AccountsModel> > LoadAccountsData(string AccessToken)
        {
            var AccountsResponseBody = await HttpRequestBuilder.RetrieveMultiple(AccessToken, new string[] { "name", "emailaddress1", "telephone1" }, "account");

            Accounts = new ObservableCollection <AccountsModel>();

            // Converting response string to xDocument.
            XDocument  xdoc = XDocument.Parse(AccountsResponseBody.ToString(), LoadOptions.None);
            XNamespace s    = "http://schemas.xmlsoap.org/soap/envelope/";                          //Envelop namespace s
            XNamespace a    = "http://schemas.microsoft.com/xrm/2011/Contracts";                    //a namespace
            XNamespace b    = "http://schemas.datacontract.org/2004/07/System.Collections.Generic"; //b namespace

            foreach (var entity in xdoc.Descendants(s + "Body").Descendants(a + "Entities").Descendants(a + "Entity"))
            {
                AccountsModel account = new AccountsModel();
                foreach (var KeyvaluePair in entity.Descendants(a + "KeyValuePairOfstringanyType"))
                {
                    if (KeyvaluePair.Element(b + "key").Value == "name")
                    {
                        account.Name = KeyvaluePair.Element(b + "value").Value;
                    }
                    else if (KeyvaluePair.Element(b + "key").Value == "emailaddress1")
                    {
                        account.Email = KeyvaluePair.Element(b + "value").Value;
                    }
                    else if (KeyvaluePair.Element(b + "key").Value == "telephone1")
                    {
                        account.Phone = KeyvaluePair.Element(b + "value").Value;
                    }
                }
                Accounts.Add(account);
            }
            return(Accounts);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Fetch Tasks details.
        /// Extracts Tasks details from XML response and binds data to Observable Collection.
        /// </summary>
        public async Task <ObservableCollection <TasksModel> > LoadTasksData(string AccessToken)
        {
            var TasksResponseBody = await HttpRequestBuilder.RetrieveMultiple(AccessToken, new string[] { "subject", "scheduledstart" }, "task");

            Tasks = new ObservableCollection <TasksModel>();

            // Converting response string to xDocument.
            XDocument  xdoc = XDocument.Parse(TasksResponseBody.ToString(), LoadOptions.None);
            XNamespace s    = "http://schemas.xmlsoap.org/soap/envelope/";                          //Envelop namespace s
            XNamespace a    = "http://schemas.microsoft.com/xrm/2011/Contracts";                    //a namespace
            XNamespace b    = "http://schemas.datacontract.org/2004/07/System.Collections.Generic"; //b namespace

            foreach (var entity in xdoc.Descendants(s + "Body").Descendants(a + "Entities").Descendants(a + "Entity"))
            {
                TasksModel task = new TasksModel();
                foreach (var KeyvaluePair in entity.Descendants(a + "KeyValuePairOfstringanyType"))
                {
                    if (KeyvaluePair.Element(b + "key").Value == "subject")
                    {
                        task.Subject = (string)KeyvaluePair.Element(b + "value").Value;
                    }
                    else if (KeyvaluePair.Element(b + "key").Value == "scheduledstart")
                    {
                        task.ScheduledStartDate = DateTime.Parse(KeyvaluePair.Element(b + "value").Value);
                    }
                }
                Tasks.Add(task);
            }
            return(Tasks);
        }