У меня есть приложение в формах Xamarin, использующее WebAPI в качестве бэкэнда. Я хочу, чтобы приложение выполняло определенные действия, если выполняется одно из следующих условий. Это приложение типа социальной сети с профилями пользователей и чатом и т. Д. c.
. Будет ли лучше выбрасывать некоторые пользовательские исключения из WebAPI, которые клиент может перехватить, а затем действовать? Как мне это реализовать?
например
- UnauthorisedUser
- ProfileNotComplete
- ProfilePictureNotComplete
- ProfileNotActive
Затем клиент откроет модальное диалоговое окно, в котором пользователю необходимо будет предпринять какие-то действия, прежде чем продолжать использовать остальную часть приложения.
Я использую HttpClient для отправки запросов к API и JsonConvert.DeserializeObject для ответов.
У меня уже есть (1), но я не уверен, как поступить с остальными ...
Мой текущий код выглядит примерно так:
public async Task<T> GetAsync<T>(string uri, string authToken = "")
{
try
{
HttpClient httpClient = CreateHttpClient(authToken);
string jsonResult = string.Empty;
var responseMessage = await httpClient.GetAsync(uri);
if (responseMessage.IsSuccessStatusCode)
{
jsonResult = await responseMessage.Content.ReadAsStringAsync().ConfigureAwait(false);
var json = JsonConvert.DeserializeObject<T>(jsonResult);
return json;
}
if (responseMessage.StatusCode == HttpStatusCode.Unauthorized)
{
throw new CustomUserUnauthorisedException();
}
}
catch (Exception e)
{
Crashes.TrackError(e);
throw e;
}
}