Пример #1
0
        public ActionResult <CompraDTO> Post([FromBody] CompraDTO compra)
        {
            var comp = new CompraEntity()
            {
                APROVADO         = null,
                DATA_SOLICITACAO = compra.DATA_SOLICITACAO,
                DESCRICAO        = compra.DESCRICAO,
                FINALIZADO       = false,
                TITULO           = compra.TITULO,
                COD_USUARIO      = compra.USUARIO.COD_USUARIO,
                COD_STATUS       = 1,
                COD_CATEGORIA    = compra.CATEGORIA.COD_CATEGORIA
            };

            comp.TITULO = comp.TITULO.Trim(' ');
            if (string.IsNullOrEmpty(comp.TITULO))
            {
                return(BadRequest("Por Favor preencha um título válido"));
            }

            var newComp = _compraRepository.Add(comp);

            compra.COD_COMPRA = newComp.COD_COMPRA;
            for (int i = 0; i < compra.ORCAMENTO.Count; i++)
            {
                compra.ORCAMENTO.ToArray()[i].COD_COMPRA = compra.COD_COMPRA;
                _orcamentoRepository.Add(compra.ORCAMENTO.ToArray()[i]);
            }

            return(Ok(comp));
        }
Пример #2
0
        public void Salvar(Compra compra)
        {
            foreach (var compraItem in compra.Itens)
            {
                _compraItemDomainService.ValidarProdutoExistente(compraItem);
            }



            // Para usar BeginTransation teria que implementar uma padrão Unit of Work e deixar disponível aki
            // A Application, que deve gerenciar a Transation
            try
            {
                // BeginTransation
                _compraRepository.Add(compra);
                foreach (var compraItem in compra.Itens)
                {
                    _compraItemRepository.Add(compraItem);
                }
                // Commit
            }
            catch
            {
                // RollBack
                throw;
            }
        }