private bool ValidaQuantidadeItens(Ordem ordem) { foreach (var livro in ordem.Livros) { var livroUnitario = _livroRepositorio.Get(livro.Id); if (livroUnitario.Quantidade < livro.QuantidadeItensSelecionados) return false; } return true; }
public void Post(Ordem ordem) { if (!ModelState.IsValid) throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); if (!ValidaQuantidadeItens(ordem)) throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Sua compra possui uma quantidade de itens inválidos!.")); foreach (var livro in ordem.Livros) { var livroUnitario = _livroRepositorio.Get(livro.Id); livroUnitario.Quantidade -= livro.QuantidadeItensSelecionados; _livroRepositorio.Update(livroUnitario); CarrinhoComprasHub.Value.Clients.All.updateProdutoCount(livroUnitario); } var adicionado = _ordemRepositorio.Add(ordem); AdminHub.Value.Clients.All.ordemCompraEntregue(adicionado); }