Beispiel #1
0
        public async Task <HttpResponseMessage> GetHttpResponseFromRequest(ApiRequestParameters parameters)
        {
            if (parameters == null)
            {
                return(null);
            }

            return(await SendRequest(parameters.Url, parameters.Content, parameters.Method, parameters.MediaType, parameters.Token));
        }
Beispiel #2
0
        private async Task <string> GetSharePointEntityTypeFullNameAsync()
        {
            var parameters = new ApiRequestParameters {
                Select = "ListItemEntityTypeFullName"
            };
            var json = await restApiClient.GetListAsync(listName, parameters);

            var jsonDocument = System.Text.Json.JsonDocument.Parse(json);
            var sharePointEntityTypeFullName = jsonDocument.RootElement.GetProperty("d").GetProperty("ListItemEntityTypeFullName").ToString();

            return(sharePointEntityTypeFullName);
        }
Beispiel #3
0
        /// <summary>
        /// Returns item with specified Id.
        /// </summary>
        /// <param name="id">Id of the target item.</param>
        /// <returns>The Task object of strongly typed object.</returns>
        public async Task <T> GetItemAsync(int id)
        {
            var usedProperties = GetUsedProperties();
            var parameters     = new ApiRequestParameters {
                Select = GetSelectParameter(usedProperties), Expand = GetExpandParameter(usedProperties)
            };
            var json = await restApiClient.GetItemAsync(listName, id, parameters);

            var result = converter.ConvertFromSPEntity <T>(json, usedProperties);

            ResetParams();

            return(result);
        }
Beispiel #4
0
        /// <summary>
        /// Returns a collection of items from the list based on the specified query.
        /// </summary>
        /// <param name="query">CAML query as string.</param>
        /// <returns></returns>
        public async Task <List <T> > GetItemsAsync(string query)
        {
            var digest = await formDigestStorage.GetFormDigestAsync();

            var usedProperties = GetUsedProperties();
            var parameters     = new ApiRequestParameters {
                Select = GetSelectParameter(usedProperties), Expand = GetExpandParameter(usedProperties), Top = top
            };
            var json = await restApiClient.GetItemsAsync(listName, digest, query, parameters);

            var result = converter.ConvertFromSPEntities <T>(json, usedProperties);

            ResetParams();

            return(result);
        }
Beispiel #5
0
        public async Task <string> PerformApiRequest(ApiRequestParameters parameters)
        {
            try
            {
                if (parameters == null)
                {
                    return(null);
                }

                if (!await CheckInternetStatus())
                {
                    return(null);
                }

                var response = await _apiRequest.GetHttpResponseFromRequest(parameters);

                if (response == null || !response.IsSuccessStatusCode)
                {
                    DisplayAlert("Error", "There was an issue communicating with the services");
                    return(null);
                }

                var content = await response.Content.ReadAsStringAsync();

                if (string.IsNullOrEmpty(content))
                {
                    DisplayAlert("Error", "The content had an issue.");
                    return(null);
                }

                return(content);
            }
            catch (Exception)
            {
                DisplayAlert("Error", "Communication issue");
                return(null);
            }
        }