public async Task <List <TList> > GetAll(string orderBy, string direction = "asc") { var queryParams = new HttpQueryParameters(); if (!string.IsNullOrEmpty(orderBy)) { queryParams.Add("orderBy", orderBy); } if (!string.IsNullOrEmpty(direction)) { queryParams.Add("direction", direction); } var settings = new HttpSettings($"{this.Url}", queryParams, null); return(await this.Http.Get <List <TList> >(settings)); }
/// <summary> /// Get number /// </summary> /// <param name="settings">HTTP settings</param> /// <returns>Number response</returns> public async Task <int?> GetInt(HttpSettings settings) { return(await Get <int?>(settings)); }
/// <summary> /// GET request /// </summary> /// <param name="settings">HTTP settings</param> /// <typeparam name="T">Type of the result</typeparam> /// <returns>Response as T type</returns> public async Task <T> Get <T>(HttpSettings settings) { return((await SendRequest <T>(settings, HttpMethod.Get, null, true)).Content); }
/// <summary> /// DELETE request /// </summary> /// <param name="settings">HTTP settings</param> /// <returns>The request was success or not</returns> public async Task <bool> Delete(HttpSettings settings) { return((await SendRequest <object>(settings, HttpMethod.Delete, null)).IsSuccess); }
/// <summary> /// POST request where we want string response /// </summary> /// <param name="settings">HTTP settings</param> /// <param name="body">Body of post request</param> /// <typeparam name="T">Type of the body</typeparam> /// <returns>Response string value</returns> public async Task <string> CreateString <T>(HttpSettings settings, HttpBody <T> body) { return(await CreateWithResult <string, T>(settings, body)); }
/// <summary> /// POST request /// </summary> /// <param name="settings">HTTP settings</param> /// <param name="body">Body of post request</param> /// <typeparam name="T">Type of the body</typeparam> /// <returns>The request was success or not</returns> public async Task <bool> Create <T>(HttpSettings settings, HttpBody <T> body) { return((await SendRequest <object>(settings, HttpMethod.Post, body.GetStringContent())).IsSuccess); }
private async Task <HttpResponse <T> > SendRequest <T>(HttpSettings settings, HttpMethod method, HttpContent content, bool parseResult) { CheckSettings(settings); var url = CreateUrl(settings); var request = new HttpRequestMessage(method, url); if (content != null) { request.Content = content; } if (_configuration.IsTokenBearer) { var token = await _localStorageService.GetItemAsync <string>(_configuration.TokenName); var isApiUrl = request.RequestUri?.IsAbsoluteUri ?? false; if (!string.IsNullOrEmpty(token) && isApiUrl) { request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); } } try { using var response = await _httpClient.SendAsync(request); if (CheckActionWasUnauthorized(response)) { return(new HttpResponse <T> { IsSuccess = false }); } if (settings.ToasterSettings.IsNeeded) { await _helperService.AddToaster(response, settings.ToasterSettings.Caption); } if (!response.IsSuccessStatusCode) { return(new HttpResponse <T> { IsSuccess = false }); } try { if (parseResult) { return(new HttpResponse <T> { IsSuccess = true, Content = await response.Content.ReadFromJsonAsync <T>() }); } return(new HttpResponse <T> { IsSuccess = true }); } catch (Exception e) { ConsoleSerializationError(e); return(new HttpResponse <T> { IsSuccess = false }); } } catch (Exception e) { ConsoleCallError(e, url); return(new HttpResponse <T> { IsSuccess = false }); } }
private async Task <HttpResponse <T> > SendRequest <T>(HttpSettings settings, HttpMethod method, HttpContent content) { return(await SendRequest <T>(settings, method, content, false)); }
public async Task <T> CreateWithResult <T, TBody>(HttpSettings settings, HttpBody <TBody> body) { return((await SendRequest <T>(settings, HttpMethod.Post, body.GetStringContent(), true)).Content); }
public async Task <bool> Download <T>(HttpSettings settings, T model) { var body = new HttpBody <T>(model); return(Download(await UpdateWithResult <ExportResult, T>(settings, body))); }
public async Task <bool> Download(HttpSettings settings) { return(Download(await Get <ExportResult>(settings))); }
public async Task <int> CreateInt <T>(HttpSettings settings, HttpBody <T> body) { return(await CreateWithResult <int, T>(settings, body)); }
/// <summary> /// Get string /// </summary> /// <param name="settings">HTTP settings</param> /// <returns>String response</returns> public async Task <string> GetString(HttpSettings settings) { return(await Get <string>(settings)); }