예제 #1
0
        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);
        }
예제 #2
0
        public IActionResult Post([FromBody] CadastroVendaViewModel viewModel)
        {
            if (viewModel == null)
            {
                return(BadRequest("Informação errada"));
            }

            var venda = _vendaBusiness.RegistrarVenda(viewModel);

            return(Ok(utilMapeamento.PrepararRetorno(venda)));
        }