示例#1
0
        public AnuidadeDao GetAnuidadeDaoById(int id)
        {
            List <DbParameter> _parametros = new List <DbParameter>();

            query = @"SELECT AnuidadeId, Exercicio, 
                        DtVencimento, DtInicioVigencia, DtTerminoVigencia, 
                        CobrancaLiberada, DtCobrancaLiberada, 
                        DtCadastro, Ativo  
                    FROM dbo.AD_Anuidade
                    WHERE AnuidadeId = @id ";

            // Definição do parâmetros da consulta:
            SqlParameter paramId = new SqlParameter()
            {
                ParameterName = "@id", Value = id
            };

            _parametros.Add(paramId);
            // Fim da definição dos parâmetros

            // Define o banco de dados que será usando:
            CommandSql cmd = new CommandSql(strConnSql, query, EnumDatabaseType.SqlServer, parametros: _parametros);

            // Obtém os dados do banco de dados:
            AnuidadeDao _anuidadeDao = GetCollection <AnuidadeDao>(cmd)?.FirstOrDefault <AnuidadeDao>();

            // Log da consulta:
            string log = logRep.SetLogger(className + "/GetAnuidadeDaoById",
                                          "SELECT", "ANUIDADE", id, query, _anuidadeDao != null ? "SUCESSO" : "0");

            // Fim Log

            if (_anuidadeDao != null)
            {
                _anuidadeDao.AnuidadesTiposPublicosDao = GetAnuidadeTipoPublicoDaoByAnuidadeId(id);
            }
            return(_anuidadeDao);
        }
示例#2
0
        public Task <HttpResponseMessage> PostDao(AnuidadeDao anuidadeDao)
        {
            HttpResponseMessage response = new HttpResponseMessage();
            var    tsc       = new TaskCompletionSource <HttpResponseMessage>();
            string resultado = "false";

            try
            {
                if (anuidadeDao == null)
                {
                    throw new ArgumentNullException("O objeto 'AnuidadeDao' está nulo!");
                }

                resultado = _anuidadeApplication.SaveAnuidadeDao(anuidadeDao);

                response = Request.CreateResponse(HttpStatusCode.OK, resultado);

                tsc.SetResult(response);

                return(tsc.Task);
            }
            catch (Exception ex)
            {
                if (ex.GetType().Name == "InvalidOperationException" || ex.Source == "prmToolkit.Validation")
                {
                    response = Request.CreateResponse(HttpStatusCode.NotFound);
                    response.ReasonPhrase = ex.Message;
                }
                else
                {
                    response = Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message);
                }
                tsc.SetResult(response);

                return(tsc.Task);
            }
        }
示例#3
0
        public string UpdateAnuidadeDao(int id, AnuidadeDao a)
        {
            bool   _resultado = false;
            string _msg       = "";
            string _msg2      = "";

            using (SqlConnection connection = new SqlConnection(strConnSql))
            {
                connection.Open();

                SqlCommand     command = connection.CreateCommand();
                SqlTransaction transaction;

                // Start a local transaction.
                transaction = connection.BeginTransaction("AtualizarAnuidade");

                command.Connection  = connection;
                command.Transaction = transaction;

                try
                {
                    string _dtCobrancaLiberada = a.DtCobrancaLiberada != null ? "DtCobrancaLiberada = @DtCobrancaLiberada, " : "";

                    command.CommandText = "" +
                                          "UPDATE dbo.AD_Anuidade " +
                                          "SET Exercicio = @Exercicio, DtVencimento = @DtVencimento, " +
                                          "   DtInicioVigencia = @DtInicioVigencia, DtTerminoVigencia = @DtTerminoVigencia, " +
                                          "   CobrancaLiberada = @CobrancaLiberada, " + _dtCobrancaLiberada + " " +
                                          "   Ativo = @Ativo " +
                                          "WHERE AnuidadeId = @id";

                    command.Parameters.AddWithValue("Exercicio", a.Exercicio);
                    command.Parameters.AddWithValue("DtVencimento", a.DtVencimento);
                    command.Parameters.AddWithValue("DtInicioVigencia", a.DtInicioVigencia);
                    command.Parameters.AddWithValue("DtTerminoVigencia", a.DtTerminoVigencia);
                    command.Parameters.AddWithValue("CobrancaLiberada", a.CobrancaLiberada);
                    command.Parameters.AddWithValue("Ativo", a.Ativo);
                    command.Parameters.AddWithValue("id", id);

                    if (_dtCobrancaLiberada != "")
                    {
                        command.Parameters.AddWithValue("DtCobrancaLiberada", a.DtCobrancaLiberada);
                    }

                    int x = command.ExecuteNonQuery();
                    _resultado = x > 0;

                    _msg = x > 0 ? "Atualização realizada com sucesso" : "Atualização NÃO realizada com sucesso";

                    transaction.Commit();

                    // Log do UPDATE PESSOA:
                    StringBuilder sb = new StringBuilder();
                    sb.Append("Parâmetros: ");

                    for (int z = 0; z < command.Parameters.Count; z++)
                    {
                        sb.Append(command.Parameters[z].ParameterName + ": " + command.Parameters[z].Value + ", ");
                    }

                    _instrucaoSql = sb.ToString();
                    _result       = x > 0 ? "SUCESSO" : "FALHA";

                    string log = logRep.SetLogger(className + "/UpdateAnuidadeDao",
                                                  "UPDATE", "ANUIDADE", id, _instrucaoSql, _result);
                    //Fim do Log

                    // Atualizando os valores da anuidade:
                    if (a.AnuidadesTiposPublicosDao != null)
                    {
                        foreach (var atp in a.AnuidadesTiposPublicosDao)
                        {
                            _msg2 = this.UpdateAnuidadeTipoPublico(atp.AnuidadeTipoPublicoId, atp);
                        }
                    }
                }
                catch (Exception ex)
                {
                    try
                    {
                        transaction.Rollback();
                    }
                    catch (Exception ex2)
                    {
                        throw new Exception($"Rollback Exception Type:{ex2.GetType()}. Erro:{ex2.Message}");
                    }

                    string log = logRep.SetLogger(className + "/UpdateAnuidadeDao",
                                                  "UPDATE", "ANUIDADE", 0, ex.Message, "FALHA");

                    if (ex.Message.Contains("Violation of UNIQUE KEY constraint 'AK_AD_Anuidade_Exercicio'. Cannot insert duplicate key in object 'dbo.AD_Anuidade'"))
                    {
                        _msg = "Atenção: Já há um registro previamente cadastrado para o exercício informado";
                    }
                    else
                    {
                        _msg = "Atenção: Não foi possível gravar o registro";
                    }

                    // throw new Exception($"Commit Exception Type:{ex.GetType()}. Erro:{ex.Message}");
                }
                finally
                {
                    connection.Close();
                }
            }
            return(_msg);
        }
示例#4
0
        public string InsertAnuidadeDao(AnuidadeDao a)
        {
            bool   _resultado = false;
            string _msg       = "";
            string _msg2      = "";
            Int32  id         = 0;
            string _ident     = "";

            using (SqlConnection connection = new SqlConnection(strConnSql))
            {
                connection.Open();

                SqlCommand     command = connection.CreateCommand();
                SqlTransaction transaction;

                // Start a local transaction.
                transaction = connection.BeginTransaction("IncluirAnuidade");

                command.Connection  = connection;
                command.Transaction = transaction;

                string _dtCobrancaLiberada      = a.DtCobrancaLiberada != null ? ", DtCobrancaLiberada " : "";
                string _paramDtCobrancaLiberada = a.DtCobrancaLiberada != null ? ", @DtCobrancaLiberada " : "";

                try
                {
                    command.CommandText = "" +
                                          "INSERT into dbo.AD_Anuidade (Exercicio, DtVencimento, DtInicioVigencia, " +
                                          "       DtTerminoVigencia, CobrancaLiberada" + _dtCobrancaLiberada + ") " +
                                          "VALUES (@Exercicio, @DtVencimento, @DtInicioVigencia, " +
                                          "       @DtTerminoVigencia, @CobrancaLiberada" + _paramDtCobrancaLiberada + ") " +
                                          "SELECT CAST(scope_identity() AS int) ";

                    command.Parameters.AddWithValue("Exercicio", a.Exercicio);
                    command.Parameters.AddWithValue("DtVencimento", a.DtVencimento);
                    command.Parameters.AddWithValue("DtInicioVigencia", a.DtInicioVigencia);
                    command.Parameters.AddWithValue("DtTerminoVigencia", a.DtTerminoVigencia);
                    command.Parameters.AddWithValue("CobrancaLiberada", a.CobrancaLiberada);

                    if (_paramDtCobrancaLiberada != "")
                    {
                        command.Parameters.AddWithValue("DtCobrancaLiberada", a.DtCobrancaLiberada);
                    }

                    id         = (Int32)command.ExecuteScalar();
                    _resultado = id > 0;

                    if (id > 0)
                    {
                        _ident = _ident.PadLeft(10 - id.ToString().Length, '0') + id.ToString();
                    }

                    _msg = id > 0 ? $"{_ident}Inclusão realizada com sucesso" : $"{_ident}Inclusão Não realizada com sucesso";

                    transaction.Commit();

                    // Log da Inserção ANUIDADE:
                    StringBuilder sb = new StringBuilder();
                    sb.Append("Parâmetros: ");

                    for (int z = 0; z < command.Parameters.Count; z++)
                    {
                        sb.Append(command.Parameters[z].ParameterName + ": " + command.Parameters[z].Value + ", ");
                    }

                    _instrucaoSql = sb.ToString();
                    _result       = id > 0 ? "SUCESSO" : "FALHA";

                    string log = logRep.SetLogger(className + "/InsertAnuidadeDao",
                                                  "INSERT", "ANUIDADE", id, _instrucaoSql, _result);
                    //Fim do Log

                    // Inserindo na tabela ANUIDADE_TIPO_PUBLICO:

                    if (a.AnuidadesTiposPublicosDao != null)
                    {
                        foreach (var atp in a.AnuidadesTiposPublicosDao)
                        {
                            atp.AnuidadeId = id;

                            if (atp.AnuidadeTipoPublicoId == 0)
                            {
                                _msg2 = this.InsertAnuidadeTipoPublico(atp);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    // Attempt to roll back the transaction.
                    try
                    {
                        transaction.Rollback();
                    }
                    catch (Exception ex2)
                    {
                        throw new Exception($"Rollback Exception Type:{ex2.GetType()}. Erro:{ex2.Message}");
                    }

                    string log = logRep.SetLogger(className + "/InsertAnuidadeDao",
                                                  "INSERT", "ANUIDADE", 0, ex.Message, "FALHA");

                    if (ex.Message.Contains("Violation of UNIQUE KEY constraint 'AK_AD_Anuidade_Exercicio'. Cannot insert duplicate key in object 'dbo.AD_Anuidade'"))
                    {
                        _msg = "Atenção: Já há um registro previamente cadastrado para o exercício informado";
                    }
                    else
                    {
                        _msg = "Atenção: Não foi possível gravar o registro";
                    }

                    // throw new Exception($"Commit Exception Type:{ex.GetType()}. Erro:{ex.Message}");
                }
                finally
                {
                    connection.Close();
                }
            }
            return(_msg);
        }
        public string SaveAnuidadeDao(AnuidadeDao a)
        {
            IEnumerable <TipoPublico> tiposPublicos = GetTiposPublicosToAnuidade();

            List <TipoPublico> lstTipoPublico = new List <TipoPublico>();

            foreach (var tp in tiposPublicos)
            {
                lstTipoPublico.Add(tp);
            }

            ArgumentsValidator.RaiseExceptionOfInvalidArguments(
                RaiseException.IfTrue(a.Exercicio == 0, "Exercício não informado"),
                RaiseException.IfFalse(Functions.CheckDate(a.DtVencimento.ToString()), "Data inválida"),
                RaiseException.IfFalse(Functions.CheckDate(a.DtInicioVigencia.ToString()), "Data início vigência inválida"),
                RaiseException.IfFalse(Functions.CheckDate(a.DtTerminoVigencia.ToString()), "Data término vigência inválida"),
                RaiseException.IfTrue(a.AnuidadesTiposPublicosDao == null, "Anuidade tipo público está nulo")
                );

            foreach (var atp in a.AnuidadesTiposPublicosDao)
            {
                ArgumentsValidator.RaiseExceptionOfInvalidArguments(
                    RaiseException.IfTrue(atp.ValoresAnuidades == null, "Valores anuidades está nulo")
                    );

                atp.TipoPublicoId = lstTipoPublico.Find(x => x.Codigo == atp.Codigo).TipoPublicoId;

                ArgumentsValidator.RaiseExceptionOfInvalidArguments(
                    RaiseException.IfTrue(atp.TipoPublicoId == 0, "Tipo Publico não encontrado")
                    );
            }

            // Setando a primeira data de inicio da cobrança:
            if (a.CobrancaLiberada == true && a.DtCobrancaLiberada == null)
            {
                a.DtCobrancaLiberada = DateTime.Now;
            }

            AnuidadeDao _a = new AnuidadeDao
            {
                AnuidadeId         = a.AnuidadeId,
                Exercicio          = a.Exercicio,
                DtVencimento       = a.DtVencimento,
                DtInicioVigencia   = a.DtInicioVigencia,
                DtTerminoVigencia  = a.DtTerminoVigencia,
                CobrancaLiberada   = a.CobrancaLiberada,
                DtCobrancaLiberada = a.DtCobrancaLiberada,
                DtCadastro         = a.DtCadastro,
                Ativo = a.Ativo,
                AnuidadesTiposPublicosDao = a.AnuidadesTiposPublicosDao
            };

            try
            {
                if (_a.AnuidadeId == 0)
                {
                    return(_anuidadeService.InsertAnuidadeDao(_a));
                }
                else
                {
                    return(_anuidadeService.UpdateAnuidadeDao(a.AnuidadeId, _a));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#6
0
 public string UpdateAnuidadeDao(int id, AnuidadeDao anuidadeDao)
 {
     return(_anuidadeRepository.UpdateAnuidadeDao(id, anuidadeDao));
 }
示例#7
0
 public string InsertAnuidadeDao(AnuidadeDao anuidadeDao)
 {
     return(_anuidadeRepository.InsertAnuidadeDao(anuidadeDao));
 }