Как добавить ответное сообщение из репозитория вместо контроллера - PullRequest
0 голосов
/ 20 июня 2019

Я хочу установить сообщение об ошибке из хранилища, прежде чем контроллер вернет 'ok' или 'BadRequest'

[HttpPost(Name = "CreateAsyncEmployee")]
public async Task<IActionResult> CreateAsync(RegisterModel model)
{
    Employee employee = _repositoryContext.Employee.CreateAsync(model);
    return OK();
}

добавить сообщение в ответ http из хранилища:

public async Task<Employee> CreateAsync(RegisterModel model)
{
    ....
    Httpresponse response = new HttpResponse();
    response.Current.write("register completed.");
    return employee;
}

1 Ответ

0 голосов
/ 20 июня 2019

Как уже упоминалось в комментариях - я бы этого не делал вообще.Задача контроллера - управлять взаимодействием между вашим кодом / бизнес-логикой и кодом HTTP.HttpResponse, который вы создаете в своем методе репозитория, относится только к этому методу, поэтому вы не будете писать в фактический ответ на исходный запрос.

Что касается того, как это сделать, существует множество различных способов.Если вы хотите вернуть неверный запрос, я, вероятно, предпочел бы метод проверки.Это может проверить и то, что все необходимые поля заполнены, и, возможно, что это не дублирующаяся регистрация.Код вашего контроллера будет:

[HttpPost(Name = "CreateAsyncEmployee")]
public async Task<IActionResult> CreateAsync(RegisterModel model)
{
    if (IsValid(model)
    {
        Employee employee = _repositoryContext.Employee.CreateAsync(model);
        return OK();
    }
    else
    {
        return BadRquest();
    }
}
...