Como fica validações que não são fixas?
Exemplo, um campo de venda onde o quantidade máxima de um item depende da quantidade em estoque. Neste caso não daria para fazer a validação por anotação, então como fazer a validação?
Como fica validações que não são fixas?
Exemplo, um campo de venda onde o quantidade máxima de um item depende da quantidade em estoque. Neste caso não daria para fazer a validação por anotação, então como fazer a validação?
Imagine que trabalhos em uma comercio de bebidas para isso nos extraimos o dados de quantas bebidas tem no estoque esse dado pode ser extraido de diversas formas normalmente é extraido de um banco de dados qualquer e atribuimos esse valor a uma variavel com isso comparamos a os valores e poderemos retorna um status http como 400 informando que a falta do produto.
exemplo:
[HttpGet]
public async Task<IActionResult> GetProduto(Guid idProduto, int quantidade)
{
var quantidadeEmEstoque = repository.BuscarQuantidadeProdutoByidProduto(idProduto);
if (quantidadeEmEstoque < quantidade)
{
return BadRequest("Sem Produto suficiente no estoque");
}
return Ok("tem produto no estoque")
}
Caso queira entender mais sobre esses modelos de retorno que temos que fazer de forma braçal pode olhar em: https://docs.microsoft.com/pt-br/aspnet/core/web-api/action-return-types?view=aspnetcore-5.0 https://docs.microsoft.com/en-us/dotnet/api/system.identitymodel.asyncresult?view=netframework-4.8
Embora funcione, o return BadRequest, apresenta uma inconsistência no retorno, a forma que consegui o mesmo efeito do BadRequest, porém com o retorno similar foi adicionado um ModelErro ao ModelState e retornando um ValidationProblem
ModelState.AddModelError(nameof(EntityName.NumberField), "Sem estoque suficiente");
return ValidationProblem(ModelState);
Agradeço ao Ivo, pois a dica do BadRequest que me ajudou a chegar no ValidationProlem.