Анализ состояния модели ошибок - PullRequest
0 голосов
/ 06 мая 2019

Я использую WebApi и Xamarin Forms для мобильного приложения.Я использую встроенную аутентификацию пользователя / возможности учетной записи WebApi, но я не уверен, как анализировать ошибки из ответа BadRequest с ошибками ModelState.

В настоящее время AccountController имеет следующее:

if (!ModelState.IsValid)
{
    logger.Info("ModelState not IsValid");
    logger.Error(ModelState.ToString);
    return BadRequest(ModelState);

}

Это затем возвращает все ошибки состояния модели (адрес электронной почты не верный, пароли не совпадают и т.

var response = await repository.PostAsync<SignUpModel> 
(builder.ToString(), model, "");

Репозиторий:

    public async Task<T> PostAsync<T>(string uri, T data, string authToken = "")
    {
        try
        {
            HttpClient httpClient = CreateHttpClient(authToken);
            var content = new StringContent(JsonConvert.SerializeObject(data));
            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            string jsonResult = string.Empty;


            var responseMessage = await httpClient.PostAsync(uri, content);

            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 UnauthorizedAccessException();
            }

            else if (responseMessage.StatusCode == HttpStatusCode.PreconditionFailed)
            {
                throw new Exception(responseMessage.ReasonPhrase);
            }

            else
            {
                throw new Exception(responseMessage.StatusCode.ToString());
            }

        }
        catch (Exception e)
        {
            throw e;

        }

    }

SignUpModel:

public class SignUpPageModel
{

    public int MobileNumber { get; set; }
    public string FirstName { get; set; }
    public string Gender { get; set; }
    public DateTime DateOfBirth { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    public string ConfirmPassword { get; set; }

}

Я бы хотел зафиксировать ошибки ModelState, а затем представить пользователю сообщение о том, что ему нужноисправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...