/// <summary> /// Executes a lookup against a table. /// </summary> /// <param name="id"> /// The id of the instance to lookup. /// </param> /// <param name="parameters"> /// A dictionary of user-defined parameters and values to include in /// the request URI query string. /// </param> /// <returns> /// A task that will return with a result when the lookup finishes. /// </returns> internal Task <string> SendLookupAsync(object id, IDictionary <string, string> parameters) { Debug.Assert(id != null); string uriFragment = MobileServiceUrlBuilder.GetUriFragment(this.TableName, id); string queryString = MobileServiceUrlBuilder.GetQueryString(parameters); string uriString = MobileServiceUrlBuilder.CombinePathAndQuery(uriFragment, queryString); return(this.MobileServiceClient.HttpClient.RequestAsync(HttpMethod.Get, uriString, null)); }
/// <summary> /// Inserts an <paramref name="instance"/> into the table. /// </summary> /// <param name="instance"> /// The instance to insert into the table. /// </param> /// <param name="parameters"> /// A dictionary of user-defined parameters and values to include in /// the request URI query string. /// </param> /// <returns> /// A task that will complete when the insert finishes. /// </returns> internal Task <string> SendInsertAsync(string instance, IDictionary <string, string> parameters) { Debug.Assert(instance != null); string uriFragment = MobileServiceUrlBuilder.GetUriFragment(this.TableName); string queryString = MobileServiceUrlBuilder.GetQueryString(parameters); string uriString = MobileServiceUrlBuilder.CombinePathAndQuery(uriFragment, queryString); return(this.MobileServiceClient.HttpClient.RequestAsync(HttpMethod.Post, uriString, instance)); }
/// <summary> /// Excutes a query against the table. /// </summary> /// <param name="query"> /// A query to execute. /// </param> /// <param name="parameters"> /// A dictionary of user-defined parameters and values to include in /// the request URI query string. /// </param> /// <returns> /// A task that will return with results when the query finishes. /// </returns> public async Task <JToken> ReadAsync(string query, IDictionary <string, string> parameters) { string uriFragment = MobileServiceUrlBuilder.GetUriFragment(this.TableName); string parametersString = MobileServiceUrlBuilder.GetQueryString(parameters); // Concatenate the query and the user-defined query string parameters if (!string.IsNullOrEmpty(parametersString)) { if (!string.IsNullOrEmpty(query)) { query += '&' + parametersString; } else { query = parametersString; } } string uriString = MobileServiceUrlBuilder.CombinePathAndQuery(uriFragment, query); string response = await this.MobileServiceClient.HttpClient.RequestAsync(HttpMethod.Get, uriString, null); return(response.ParseToJToken()); }