コード例 #1
0
ファイル: CalcJuros.cs プロジェクト: Allysson01/DeliverIT
        public Contas CalculaJuros(Contas contas, int dias)
        {
            int auxDias = 0;

            try
            {
                //switch para pesquisar tabela de juros
                auxDias = dias switch
                {
                    int n when(n > 0 && n <= 3) => 3,
                    int n when(n < 3 && n <= 5) => 4,
                    _ => 6,
                };

                using var db = new DtaBaseContext(configuration);
                var calc = db.CalculoJuros.Where(x => x.DiasAtraso == auxDias).Select(s => new
                {
                    diasAtraso = s.DiasAtraso,
                    multa      = s.Multa,
                    juros      = Convert.ToDouble(s.JurosDia)
                }).FirstOrDefault();

                decimal valorMulta = Math.Round((contas.ValorOriginal / 100) * calc.multa, 2);

                contas.ValorCorrigido = (contas.ValorOriginal + valorMulta);

                for (int i = 0; i < dias; i++)
                {
                    decimal valorJuros = Math.Round((contas.ValorCorrigido / 100) * (decimal)calc.juros, 2);
                    contas.ValorCorrigido += valorJuros;
                }

                contas.QuantDiaAtraso = dias;
            }
            catch (SqlException ex)
            {
                throw new Exception("Ocorreu o erro: " + ex.Message);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocorreu o erro: " + ex.Message);
            }
            return(contas);
        }
コード例 #2
0
        public bool Post(Contas contas)
        {
            bool sucesso = false;

            try
            {
                using (var db = new DtaBaseContext(configuration))
                {
                    db.Contas.Add(contas);
                    db.SaveChanges();
                }
                sucesso = true;
            }
            catch (SqlException ex)
            {
                throw new Exception("Ocorreu o erro: " + ex.Message);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocorreu o erro: " + ex.Message);
            }
            return(sucesso);
        }
コード例 #3
0
        public List <object> Get(string filtro)
        {
            List <object> lstContas = new List <object>();

            try
            {
                if (string.IsNullOrWhiteSpace(filtro))
                {
                    #region sem filtro
                    using var db = new DtaBaseContext(configuration);
                    IOrderedQueryable list = db.Contas.Select(s => new
                    {
                        id             = s.Id,
                        nome           = s.Nome,
                        valorOriginal  = Math.Round(s.ValorOriginal, 2),
                        valorCorrigido = Math.Round(s.ValorCorrigido, 2),
                        dataVencimento = Convert.ToDateTime(s.DataVencimento).ToString("dd/MM/yyyy"),
                        dataPagamento  = Convert.ToDateTime(s.DataPagamento).ToString("dd/MM/yyyy"),
                        quantDiaAtraso = s.QuantDiaAtraso
                    }).OrderBy(o => o.nome);

                    foreach (var item in list)
                    {
                        lstContas.Add(item);
                    }
                    #endregion
                }
                else
                {
                    #region com filtro
                    using var db = new DtaBaseContext(configuration);
                    IOrderedQueryable list = db.Contas.Where(x => x.Nome.ToLower().Contains(filtro.ToLower()) ||
                                                             x.Id.ToString().Contains(filtro))
                                             .Select(s => new
                    {
                        id             = s.Id,
                        nome           = s.Nome,
                        valorOriginal  = Math.Round(s.ValorOriginal, 2),
                        valorCorrigido = Math.Round(s.ValorCorrigido, 2),
                        dataVencimento = Convert.ToDateTime(s.DataVencimento).ToString("dd/MM/yyyy"),
                        dataPagamento  = Convert.ToDateTime(s.DataPagamento).ToString("dd/MM/yyyy"),
                        quantDiaAtraso = s.QuantDiaAtraso
                    }).OrderBy(o => o.nome);

                    foreach (var item in list)
                    {
                        lstContas.Add(item);
                    }
                    #endregion
                }
            }
            catch (SqlException ex)
            {
                throw new Exception("Ocorreu o erro: " + ex.Message);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocorreu o erro: " + ex.Message);
            }


            return(lstContas);
        }