コード例 #1
0
        public ActionResult AdicionarProduto(int idCliente, int idProduto)
        {
            var cliente         = Mapper.Map <Cliente, ClienteViewModel>(_clienteService.GetById(idCliente));
            var compra          = Mapper.Map <IList <Compra>, IList <CompraViewModel> >(_compraService.BuscarCompraPorCliente(idCliente));
            var compraAssociada = Mapper.Map <Compra, CompraViewModel>(_compraService.BuscarCompraPorClienteEProduto(idCliente, idProduto));
            var produto         = Mapper.Map <Produto, ProdutoViewModel>(_produtoService.GetById(idProduto));
            var produtos        = Mapper.Map <IList <Produto>, IList <ProdutoViewModel> >(_produtoService.GetAll());

            ViewData["Cliente"]       = cliente;
            ViewData["ListaProdutos"] = produtos;

            if (compra.Count == Rules.LimiteDeProdutosPorCliente)
            {
                ViewBag.CompraReturnMessageError = Messaging.MessageClienteProdutoAdicionadoLimite;
                return(View("Produtos", compra));
            }

            if (compraAssociada != null)
            {
                ViewBag.CompraReturnMessageError = Messaging.MessageClienteProdutoAdicionado;
                return(View("Produtos", compra));
            }

            try
            {
                CompraViewModel viewModel = new CompraViewModel
                {
                    Cliente = cliente,
                    Produto = produto
                };
                _compraService.InsertOrUpdate(Mapper.Map <CompraViewModel, Compra>(viewModel));

                ViewBag.CompraReturnMessageOk = Messaging.MessageClienteAddProdutoSavedOk;

                return(View("Produtos", compra));
            }
            catch (Exception ex)
            {
                ViewBag.CompraReturnMessageError = Messaging.MessageSavedError;
                return(View("Produtos", compra));
            }
        }