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

namespace fatd_faturamento.BLL.Repositorio
{
    public class repositorioLogradouro
    {

        public void Insert(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;

            try
            {
                dalLogradouro = new dalLogradouro();

                dalLogradouro.Insert(objLogradouro);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Insert2(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;

            try
            {

                dalLogradouro = new dalLogradouro();

                dalLogradouro.Insert2(objLogradouro);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Update(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;

            try
            {
                dalLogradouro = new dalLogradouro();

                dalLogradouro.Update(objLogradouro);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Delete(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;

            try
            {
                dalLogradouro = new dalLogradouro();

                dalLogradouro.Delete(objLogradouro);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeLogradouro> Select(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;

            var lstLogradouro = new List<entidadeLogradouro>();
            DataTable dt = null;

            try
            {
                dalLogradouro = new dalLogradouro();
                dt = dalLogradouro.Select(objLogradouro);

                foreach (DataRow dr in dt.Rows)
                {
                    objLogradouro = new entidadeLogradouro();
                    objLogradouro.entidadeMUNIC = new entidadeMunic();
                    objLogradouro.entidadeUF = new entidadeUf();
                    objLogradouro.entidadeDISTRITO = new entidadeDistrito();
                    objLogradouro.entidadeBAIRRO = new entidadeBairro();

                    if (!Convert.IsDBNull(dr["CODEND"]))
                        objLogradouro.COD = dr["CODEND"].ToString();

                    if (!Convert.IsDBNull(dr["NOMLOG"]))
                        objLogradouro.NOME = dr["NOMLOG"].ToString();

                    if (!Convert.IsDBNull(dr["CEPLOG"]))
                        objLogradouro.CEP = dr["CEPLOG"].ToString();

                    if (!Convert.IsDBNull(dr["IDLOG"]))
                        objLogradouro.CODNUM = Convert.ToInt32(dr["IDLOG"]);

                    if (!Convert.IsDBNull(dr["NOMBAI"]))
                        objLogradouro.entidadeBAIRRO.NOME = dr["NOMBAI"].ToString();

                    if (!Convert.IsDBNull(dr["IDBAI"]))
                        objLogradouro.entidadeBAIRRO.CODNUM = Convert.ToInt32(dr["IDBAI"]);

                    if (!Convert.IsDBNull(dr["NOMDIS"]))
                        objLogradouro.entidadeDISTRITO.NOME = dr["NOMDIS"].ToString();

                    if (!Convert.IsDBNull(dr["IDDIS"]))
                        objLogradouro.entidadeDISTRITO.CODNUM = Convert.ToInt32(dr["IDDIS"]);

                    if (!Convert.IsDBNull(dr["NOMCID"]))
                        objLogradouro.entidadeMUNIC.NOME = dr["NOMCID"].ToString();

                    if (!Convert.IsDBNull(dr["IDCID"]))
                        objLogradouro.entidadeMUNIC.CODNUM = Convert.ToInt32(dr["IDCID"]);

                    if (!Convert.IsDBNull(dr["NOMUF"]))
                        objLogradouro.entidadeUF.UF = dr["NOMUF"].ToString();

                    if (!Convert.IsDBNull(dr["IDUF"]))
                        objLogradouro.entidadeUF.CODNUM = Convert.ToInt32(dr["IDUF"]);

                    lstLogradouro.Add(objLogradouro);
                }
                return lstLogradouro;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public DataTable SelectCount(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;
            DataTable dt = null;

            try
            {
                dalLogradouro = new dalLogradouro();
                dt = dalLogradouro.SelectCount(objLogradouro);

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

        public IList<entidadeLogradouro> SelectOthersTables(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;

            var lstLogradouro = new List<entidadeLogradouro>();
            DataTable dt = null;

            try
            {
                dalLogradouro = new dalLogradouro();
                dt = dalLogradouro.SelectOthersTables(objLogradouro);

                foreach (DataRow dr in dt.Rows)
                {
                    objLogradouro = new entidadeLogradouro();

                    if (!Convert.IsDBNull(dr["CODNUM"]))
                        objLogradouro.CODNUM = Convert.ToInt32(dr["CODNUM"]);

                    if (!Convert.IsDBNull(dr["NOME"]))
                        objLogradouro.NOME = dr["NOME"].ToString();

                    lstLogradouro.Add(objLogradouro);
                }
                return lstLogradouro;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeLogradouro> SelectOthersTables_1(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;

            var lstLogradouro = new List<entidadeLogradouro>();
            DataTable dt = null;

            try
            {
                dalLogradouro = new dalLogradouro();
                dt = dalLogradouro.SelectOthersTables_1(objLogradouro);

                foreach (DataRow dr in dt.Rows)
                {
                    objLogradouro = new entidadeLogradouro();

                    if (!Convert.IsDBNull(dr["COD"]))
                        objLogradouro.COD = dr["COD"].ToString();

                    if (!Convert.IsDBNull(dr["NOME"]))
                        objLogradouro.NOME = dr["NOME"].ToString();

                    if (!Convert.IsDBNull(dr["CEP"]))
                        objLogradouro.CEP = dr["CEP"].ToString();

                    lstLogradouro.Add(objLogradouro);
                }
                return lstLogradouro;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeLogradouro> SelectOthersTables_2(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;

            var lstLogradouro = new List<entidadeLogradouro>();
            DataTable dt = null;

            try
            {
                dalLogradouro = new dalLogradouro();
                dt = dalLogradouro.SelectOthersTables_2(objLogradouro);

                foreach (DataRow dr in dt.Rows)
                {
                    objLogradouro = new entidadeLogradouro();

                    if (!Convert.IsDBNull(dr["COD"]))
                        objLogradouro.COD = dr["COD"].ToString();

                    if (!Convert.IsDBNull(dr["NOME"]))
                        objLogradouro.NOME = dr["NOME"].ToString();

                    if (!Convert.IsDBNull(dr["CEP"]))
                        objLogradouro.CEP = dr["CEP"].ToString();

                    lstLogradouro.Add(objLogradouro);
                }
                return lstLogradouro;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeLogradouro> SelectOthersTables_3(entidadeLogradouro objLogradouro)
        {
            dalLogradouro dalLogradouro = null;

            var lstLogradouro = new List<entidadeLogradouro>();
            DataTable dt = null;

            try
            {
                dalLogradouro = new dalLogradouro();
                dt = dalLogradouro.SelectOthersTables_3(objLogradouro);

                foreach (DataRow dr in dt.Rows)
                {
                    objLogradouro = new entidadeLogradouro();

                    if (!Convert.IsDBNull(dr["COD"]))
                        objLogradouro.COD = dr["COD"].ToString();

                    if (!Convert.IsDBNull(dr["NOME"]))
                        objLogradouro.NOME = dr["NOME"].ToString();

                    if (!Convert.IsDBNull(dr["CEP"]))
                        objLogradouro.CEP = dr["CEP"].ToString();

                    lstLogradouro.Add(objLogradouro);
                }
                return lstLogradouro;
            }
            catch (Exception)
            {
                throw;
            }
        }



    }
}
