using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using fatd_faturamento.DAL.Persistencia;
using fatd_faturamento.BLL.RegraNegocio;
using fatd_faturamento.ENTIDADE;

namespace fatd_faturamento.BLL.Repositorio
{
  public  class repositorioIluminacaoPublica
    {
        public void Insert(entidadeIluminacaoPublica objIluminacaoPublica)
        {
            dalIluminacaoPublica dalIluminacaoPublica = null;

            try
            {
                dalIluminacaoPublica = new dalIluminacaoPublica();

                dalIluminacaoPublica.Insert(objIluminacaoPublica);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Update(entidadeIluminacaoPublica objIluminacaoPublica)
        {
            dalIluminacaoPublica dalIluminacaoPublica = null;

            try
            {
                dalIluminacaoPublica = new dalIluminacaoPublica();

                dalIluminacaoPublica.Update(objIluminacaoPublica);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Delete(entidadeIluminacaoPublica objIluminacaoPublica)
        {
            dalIluminacaoPublica dalIluminacaoPublica = null;

            try
            {
                dalIluminacaoPublica = new dalIluminacaoPublica();

                dalIluminacaoPublica.Delete(objIluminacaoPublica);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeIluminacaoPublica> Select(entidadeIluminacaoPublica objIluminacaoPublica)
        {
            dalIluminacaoPublica dalIluminacaoPublica = null;

            var lstIluminacaoPublica = new List<entidadeIluminacaoPublica>();
            DataTable dt = null;

            try
            {
                dalIluminacaoPublica = new dalIluminacaoPublica();
                dt = dalIluminacaoPublica.Select(objIluminacaoPublica);

                foreach (DataRow dr in dt.Rows)
                {
                    objIluminacaoPublica = new entidadeIluminacaoPublica();


                    if (!Convert.IsDBNull(dr["ID"]))
                        objIluminacaoPublica.ID = Convert.ToInt32(dr["ID"]);

                    if (!Convert.IsDBNull(dr["CIDADE"]))
                        objIluminacaoPublica.CIDADE = Convert.ToInt32(dr["CIDADE"]);

                    if (!Convert.IsDBNull(dr["CLASSE"]))
                        objIluminacaoPublica.CLASSE = Convert.ToInt32(dr["CLASSE"]);

                    if (!Convert.IsDBNull(dr["FAIXA_INI"]))
                        objIluminacaoPublica.FAIXA_INI = Convert.ToInt32(dr["FAIXA_INI"]);

                    if (!Convert.IsDBNull(dr["FAIXA_FIM"]))
                        objIluminacaoPublica.FAIXA_FIM = Convert.ToInt32(dr["FAIXA_FIM"]);

                    if (!Convert.IsDBNull(dr["TIPO"]))
                        objIluminacaoPublica.TIPO = dr["TIPO"].ToString();

                    if (!Convert.IsDBNull(dr["VALOR"]))
                        objIluminacaoPublica.VALOR = Convert.ToDouble(dr["VALOR"]);

                    if (!Convert.IsDBNull(dr["DATA"]))
                        objIluminacaoPublica.DATA = Convert.ToDateTime(dr["DATA"]);

                    if (!Convert.IsDBNull(dr["TPCONS"]))
                        objIluminacaoPublica.TPCONS = dr["TPCONS"].ToString();

                    if (!Convert.IsDBNull(dr["TPFAIXA"]))
                        objIluminacaoPublica.TPFAIXA = dr["TPFAIXA"].ToString();

                    if (!Convert.IsDBNull(dr["REGRA_CONSUMO_MAIOR_LIMITE"]))
                        objIluminacaoPublica.REGRA_CONSUMO_MAIOR_LIMITE = Convert.ToInt32(dr["REGRA_CONSUMO_MAIOR_LIMITE"]);

                    if (!Convert.IsDBNull(dr["REGRA_CONSUMO_MENOR_IGUAL_LIMITE"]))
                        objIluminacaoPublica.REGRA_CONSUMO_MENOR_IGUAL_LIMITE = Convert.ToInt32(dr["REGRA_CONSUMO_MENOR_IGUAL_LIMITE"]);

                    if (!Convert.IsDBNull(dr["VALOR_TETO_FIXO"]))
                        objIluminacaoPublica.VALOR_TETO_FIXO = Convert.ToDouble(dr["VALOR_TETO_FIXO"]);

                    if (!Convert.IsDBNull(dr["TARIFA_RESIDENCIAL"]))
                        objIluminacaoPublica.TARIFA_RESIDENCIAL = Convert.ToInt32(dr["TARIFA_RESIDENCIAL"]);

                    if (!Convert.IsDBNull(dr["VALOR_CONSUMO"]))
                        objIluminacaoPublica.VALOR_CONSUMO = Convert.ToInt32(dr["VALOR_CONSUMO"]);

                    if (!Convert.IsDBNull(dr["BAIXA_RENDA"]))
                        objIluminacaoPublica.BAIXA_RENDA = Convert.ToInt32(dr["BAIXA_RENDA"]);

                    if (!Convert.IsDBNull(dr["GRUPO"]))
                        objIluminacaoPublica.GRUPO = dr["GRUPO"].ToString();

                    if (!Convert.IsDBNull(dr["BASE_TARIFA_B4"]))
                        objIluminacaoPublica.BASE_TARIFA_B4 = Convert.ToInt32(dr["BASE_TARIFA_B4"]);

                    lstIluminacaoPublica.Add(objIluminacaoPublica);
                }
                return lstIluminacaoPublica;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeIluminacaoPublica> Select_1(entidadeIluminacaoPublica objIluminacaoPublica)
        {
            dalIluminacaoPublica dalIluminacaoPublica = null;

            var lstIluminacaoPublica = new List<entidadeIluminacaoPublica>();

            regraNegocioGlobal regranegocioGlobal = null;

            DataTable dt = null;

            try
            {
                dalIluminacaoPublica = new dalIluminacaoPublica();

                dt = dalIluminacaoPublica.Select_1(objIluminacaoPublica);

                regranegocioGlobal = new regraNegocioGlobal();

                lstIluminacaoPublica = regraNegocioGlobal.ConvertDataTable<entidadeIluminacaoPublica>(dt);

                return lstIluminacaoPublica;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeIluminacaoPublica> Select_2(entidadeIluminacaoPublica objIluminacaoPublica)
        {
            dalIluminacaoPublica dalIluminacaoPublica = null;

            var lstIluminacaoPublica = new List<entidadeIluminacaoPublica>();

            regraNegocioGlobal regranegocioGlobal = null;

            DataTable dt = null;

            try
            {
                dalIluminacaoPublica = new dalIluminacaoPublica();

                dt = dalIluminacaoPublica.Select_2(objIluminacaoPublica);

                regranegocioGlobal = new regraNegocioGlobal();

                lstIluminacaoPublica = regraNegocioGlobal.ConvertDataTable<entidadeIluminacaoPublica>(dt);

                return lstIluminacaoPublica;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeIluminacaoPublica> SelectOthersTables(entidadeIluminacaoPublica objIluminacaoPublica)
        {
            dalIluminacaoPublica dalIluminacaoPublica = null;

            var lstIluminacaoPublica = new List<entidadeIluminacaoPublica>();
            DataTable dt = null;

            try
            {
                dalIluminacaoPublica = new dalIluminacaoPublica();
                dt = dalIluminacaoPublica.SelectOthersTables(objIluminacaoPublica);

                foreach (DataRow dr in dt.Rows)
                {
                    objIluminacaoPublica = new entidadeIluminacaoPublica();

                    if (!Convert.IsDBNull(dr["DATA"]))
                        objIluminacaoPublica.DATA = Convert.ToDateTime(dr["DATA"]);

                    lstIluminacaoPublica.Add(objIluminacaoPublica);
                }
                return lstIluminacaoPublica;
            }
            catch (Exception)
            {
                throw;
            }
        }


    }
}
