/// <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); }
/// <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); }