public Venda RegistrarVenda(CadastroVendaViewModel vendaViewModel) { var dataAtutal = DateTime.Now; var venda = new Venda { Cliente_Id = vendaViewModel.ClienteId, DataDeCriacao = dataAtutal, Status = (int)Enumeracao.ESituacao.Ativo, Itens = new List <VendaItem>() }; vendaViewModel.Itens.ForEach(item => { var disco = _discoRepository.ObterPorID(item.DiscoId); var regraDeCalculo = _businessFactory.CriarRecurso(disco.Categoria); venda.Itens.Add(new VendaItem { DataDeCriacao = dataAtutal, Quantidade = item.Quantidade, CashBackUnitario = regraDeCalculo.ObterPercentualCashback(dataAtutal.DayOfWeek), Disco_Id = disco.Id, PrecoUnitario = disco.Preco, Status = (int)Enumeracao.ESituacao.Ativo }); }); venda.CashBackTotal = CalculoTotalDoCashback(venda.Itens); _vendaRepository.Criar(venda); return(venda); }
public IActionResult Post([FromBody] CadastroVendaViewModel viewModel) { if (viewModel == null) { return(BadRequest("Informação errada")); } var venda = _vendaBusiness.RegistrarVenda(viewModel); return(Ok(utilMapeamento.PrepararRetorno(venda))); }