Esempio n. 1
0
        public IHttpActionResult CadastrarRegraNaturezaOperacao([FromBody] CadastroAtualizacaoDto dadosParaCadastro)
        {
            using (var sessao = new GDATransaction())
            {
                try
                {
                    sessao.BeginTransaction();

                    var regra = new ConverterCadastroAtualizacaoParaRegraNaturezaOperacao(dadosParaCadastro)
                                .ConverterParaRegraNaturezaOperacao();

                    var resultado = Microsoft.Practices.ServiceLocation.ServiceLocator
                                    .Current.GetInstance <Fiscal.Negocios.ICfopFluxo>()
                                    .SalvarRegraNaturezaOperacao(regra);

                    if (!resultado)
                    {
                        sessao.Rollback();
                        return(this.ErroValidacao($"Falha ao cadastrar regra de natureza de operação. {resultado.Message.Format()}"));
                    }

                    sessao.Commit();
                    return(this.Criado("Regra de natureza de operação cadastrada com sucesso!", 0));
                }
                catch (Exception ex)
                {
                    sessao.Rollback();
                    return(this.ErroValidacao($"Erro ao cadastrar regra de natureza de operação.", ex));
                }
            }
        }
        public IHttpActionResult AtualizarRegraNaturezaOperacao(int id, [FromBody] CadastroAtualizacaoDto dadosParaAlteracao)
        {
            using (var sessao = new GDATransaction())
            {
                try
                {
                    sessao.BeginTransaction();

                    var validacao = this.ValidarExistenciaIdRegraNaturezaOperacao(sessao, id);

                    if (validacao != null)
                    {
                        return(validacao);
                    }

                    var fluxo = Microsoft.Practices.ServiceLocation.ServiceLocator
                                .Current.GetInstance <Fiscal.Negocios.ICfopFluxo>();

                    var regraAtual = fluxo.ObtemRegraNaturezaOperacao(id);

                    regraAtual = new ConverterCadastroAtualizacaoParaRegraNaturezaOperacao(dadosParaAlteracao, regraAtual)
                                 .ConverterParaRegraNaturezaOperacao();

                    var resultado = fluxo.SalvarRegraNaturezaOperacao(regraAtual);

                    if (!resultado)
                    {
                        sessao.Rollback();
                        return(this.ErroValidacao($"Falha ao atualizar a regra de natureza de operação. {resultado.Message.Format()}"));
                    }

                    sessao.Commit();
                    return(this.Aceito($"Regra de natureza de operação atualizada com sucesso!"));
                }
                catch (Exception ex)
                {
                    sessao.Rollback();
                    return(this.ErroValidacao($"Erro ao atualizar a regra de natureza de operação.", ex));
                }
            }
        }