mirror of
https://github.com/DrMboga/WotBlitzStatisticsBlazor.git
synced 2026-10-24 03:40:07 +02:00
Nullable refernce types refactoring
This commit is contained in:
1 parent
e5c90e03d3
commit
e12734981b
85 files changed
+509
-351
No files matched your search
@@ -1,6 +1,7 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
@@ -36,11 +37,11 @@ namespace WotBlitzStatisticsPro.WgApiClient
|
||||
_wotApiUrls[RealmType.Asia] = "https://api.worldoftanks.asia/wot/";
|
||||
}
|
||||
|
||||
protected async Task<T> GetFromBlitzApi<T>(
|
||||
protected async Task<T?> GetFromBlitzApi<T>(
|
||||
RealmType realmType,
|
||||
RequestLanguage language,
|
||||
string method,
|
||||
params string[] queryParameters)
|
||||
params string[] queryParameters) where T: class
|
||||
{
|
||||
string uri = GetUri(realmType, language, method, queryParameters);
|
||||
|
||||
@@ -52,18 +53,20 @@ namespace WotBlitzStatisticsPro.WgApiClient
|
||||
var responseString = await response.Content.ReadAsStringAsync();
|
||||
|
||||
var responseBody = JsonConvert.DeserializeObject<ResponseBody<T>>(responseString);
|
||||
if (responseBody.Status == "ok")
|
||||
{
|
||||
return responseBody.Data;
|
||||
}
|
||||
if (responseBody.Status == "error")
|
||||
{
|
||||
var error = responseBody.Error;
|
||||
var message = $"Field:{error.Field} Message:{error.Message} Value:{error.Value} Code:{error.Code}";
|
||||
throw new ArgumentException(message);
|
||||
}
|
||||
return default(T);
|
||||
}
|
||||
switch (responseBody.Status)
|
||||
{
|
||||
case "ok":
|
||||
return responseBody.Data;
|
||||
case "error":
|
||||
{
|
||||
var error = responseBody.Error;
|
||||
var message = $"Field:{(error?.Field ?? "undefined")} Message:{(error?.Message ?? "undefined")} Value:{(error?.Value ?? "undefined")} Code:{(error?.Code ?? "undefined")}";
|
||||
throw new ArgumentException(message);
|
||||
}
|
||||
default:
|
||||
throw new ArgumentException($"Unexpected response body status '{responseBody.Status}'");
|
||||
}
|
||||
}
|
||||
|
||||
private string GetUri(RealmType realmType, RequestLanguage language, string method, string[] queryParameters)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user