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 repositorioDistrito
    {

        public void Insert(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            try
            {
                dalDistrito = new dalDistrito();

                dalDistrito.Insert(objDistrito);
            }
            catch (Exception)
            {
                throw;
            }
        }


        public void Insert2(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            try
            {
                dalDistrito = new dalDistrito();

                dalDistrito.Insert2(objDistrito);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Update(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            try
            {
                dalDistrito = new dalDistrito();

                dalDistrito.Update(objDistrito);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Delete(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            try
            {
                dalDistrito = new dalDistrito();

                dalDistrito.Delete(objDistrito);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeDistrito> Select(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            var lstDistrito = new List<entidadeDistrito>();
            DataTable dt = null;

            try
            {
                dalDistrito = new dalDistrito();
                dt = dalDistrito.Select(objDistrito);

                foreach (DataRow dr in dt.Rows)
                {
                    objDistrito = new entidadeDistrito();
                    objDistrito.entidadeMUNIC = new entidadeMunic();
                    objDistrito.entidadeUF = new entidadeUf();

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

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

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

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

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

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

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

                    lstDistrito.Add(objDistrito);
                }
                return lstDistrito;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeDistrito> Select2(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            var lstDistrito = new List<entidadeDistrito>();
            DataTable dt = null;

            try
            {
                dalDistrito = new dalDistrito();
                dt = dalDistrito.Select2(objDistrito);

                foreach (DataRow dr in dt.Rows)
                {
                    objDistrito = new entidadeDistrito();
                    objDistrito.entidadeMUNIC = new entidadeMunic();
                    objDistrito.entidadeUF = new entidadeUf();

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

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

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

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

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

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

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

                    lstDistrito.Add(objDistrito);
                }
                return lstDistrito;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public DataTable SelectCount(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;
            DataTable dt = null;

            try
            {
                dalDistrito = new dalDistrito();
                dt = dalDistrito.SelectCount(objDistrito);

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

        public IList<entidadeDistrito> SelectOthersTables(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            var lstDistrito = new List<entidadeDistrito>();
            DataTable dt = null;

            try
            {
                dalDistrito = new dalDistrito();
                dt = dalDistrito.SelectOthersTables(objDistrito);

                foreach (DataRow dr in dt.Rows)
                {
                    objDistrito = new entidadeDistrito();

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

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

                    lstDistrito.Add(objDistrito);
                }
                return lstDistrito;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeDistrito> SelectOthersTables_1(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            var lstDistrito = new List<entidadeDistrito>();
            DataTable dt = null;

            try
            {
                dalDistrito = new dalDistrito();
                dt = dalDistrito.SelectOthersTables_1(objDistrito);

                foreach (DataRow dr in dt.Rows)
                {
                    objDistrito = new entidadeDistrito();

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

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

                    lstDistrito.Add(objDistrito);
                }
                return lstDistrito;
            }
            catch (Exception)
            {
                throw;
            }
        }


        public IList<entidadeDistrito> SelectOthersTables_2(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            var lstDistrito = new List<entidadeDistrito>();
            DataTable dt = null;

            try
            {
                dalDistrito = new dalDistrito();
                dt = dalDistrito.SelectOthersTables_2(objDistrito);

                foreach (DataRow dr in dt.Rows)
                {
                    objDistrito = new entidadeDistrito();

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

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

                    lstDistrito.Add(objDistrito);
                }
                return lstDistrito;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeDistrito> SelectOthersTables_3(entidadeDistrito objDistrito)
        {
            dalDistrito dalDistrito = null;

            var lstDistrito = new List<entidadeDistrito>();
            DataTable dt = null;

            try
            {
                dalDistrito = new dalDistrito();
                dt = dalDistrito.SelectOthersTables_3(objDistrito);

                foreach (DataRow dr in dt.Rows)
                {
                    objDistrito = new entidadeDistrito();

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

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

                    lstDistrito.Add(objDistrito);
                }
                return lstDistrito;
            }
            catch (Exception)
            {
                throw;
            }
        }

    }
}
