예제 #1
0
        public ActionResult Create(CompraModel compraModel)
        {
            if (!ModelState.IsValid)
            {
                CarregarCombos();
                return View(compraModel);
            }

            try
            {
                var compra = Mapper.Map<Compra>(compraModel);
                _compraApplicationService.Salvar(compra);
            }
            catch (Exception ex)
            {
                CarregarCombos();
                ModelState.AddModelError("Erro", ex.Message);
                return View(compraModel);

                //Caso fosse ajax, o método poderia ser void e exibir o erro assim:
                //Response.StatusCode = (int)HttpStatusCode.BadRequest;
                //Response.Write(ex.Message);
            }

            return RedirectToAction("Index");
        }
예제 #2
0
        public static Compra OutCompra(CompraModel compraModel)
        {
            var compra = new Compra(new Fornecedor(compraModel.IdFornecedor));
            foreach (var compraItemModel in compraModel.Itens)
                compra.AdicionarItem(
                    CompraFactory.CreateItem(
                    compra,
                    new Produto(compraItemModel.IdProduto),
                    compraItemModel.Quantidade,
                    compraItemModel.Preco));

            return compra;
        }
예제 #3
0
        public static CompraModel OutCompraModel(Compra compra)
        {
            var compraModel = new CompraModel
            {
                IdFornecedor = compra.Fornecedor.IdFornecedor,
                FornecedorNome = compra.Fornecedor.Nome,
                DataCadastro = compra.DataCadastro
            };

            foreach (var compraItem in compra.Itens)
                compraModel.Itens.Add(new CompraItemModel
                {
                    IdProduto = compraItem.Produto.IdProduto,
                    Preco = compraItem.Preco,
                    Quantidade = compraItem.Quantidade
                });

            return compraModel;
        }