public async Task <List <Session> > GetSessions() { List <Session> sessionList = new List <Session>(); string errorMessage = String.Empty; try { // Obtain information for communicating with the service: Office365ServiceInfo serviceInfo = await Office365ServiceInfo.GetSharePointServiceInfoAsync( AppSettings.SharePointHostResourceId, AppSettings.SharePointSessionListUri); if (!serviceInfo.HasValidAccessToken) { throw new Exception("Unable to get SharePoint ServiceInfo"); } // Create a URL for retrieving the data: string[] queryParameters = new string[] { "select=title,start,end,description,code" }; string requestUrl = String.Format(CultureInfo.InvariantCulture, "{0}/items?{1}", serviceInfo.ApiEndpoint, String.Join("&", queryParameters)); // Prepare the HTTP request: using (HttpClient client = new HttpClient()) { Func <HttpRequestMessage> requestCreator = () => { HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUrl); request.Headers.Add("Accept", "application/json;odata=verbose"); return(request); }; // Send the request using a helper method, which will add an authorization header to the request, // and automatically retry with a new token if the existing one has expired. using (HttpResponseMessage response = await Office365Helper.SendRequestAsync( serviceInfo, client, requestCreator)) { // Read the response and deserialize the data: string responseString = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { await Office365Helper.ShowErrorMessageAsync(serviceInfo, responseString); return(sessionList); } //sessionList = JObject.Parse(responseString)["d"]["results"].ToObject<List<Session>>(); JsonValue jsonResponse = JsonValue.Parse(responseString); JsonObject d = jsonResponse.GetObject().GetNamedObject("d"); JsonArray sessionsArray = d.GetObject().GetNamedArray("results"); if (sessionsArray.Count > 0) { foreach (JsonValue o in sessionsArray) { Session s = CommonCode.Deserialize <Session>(o.Stringify()); sessionList.Add(s); } } } } } catch (Exception ex) { errorMessage = ex.Message; } if (!sessionList.Any()) { await Office365Helper.ShowErrorMessageAsync("No Sessions Available.", errorMessage); } return(sessionList); }