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 repositorioRamal
    {
        public void Insert(entidadeRamal objRamal)
        {
            dalRamal dalRamal = null;

            try
            {
                dalRamal = new dalRamal();

                dalRamal.Insert(objRamal);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Update(entidadeRamal objRamal)
        {
            dalRamal dalRamal = null;

            try
            {
                dalRamal = new dalRamal();

                dalRamal.Update(objRamal);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Update_1(entidadeRamal objRamal)
        {
            dalRamal dalRamal = null;

            try
            {
                dalRamal = new dalRamal();

                dalRamal.Update_1(objRamal);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Delete(entidadeRamal objRamal)
        {
            dalRamal dalRamal = null;

            try
            {
                dalRamal = new dalRamal();

                dalRamal.Delete(objRamal);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeRamal> Select(entidadeRamal objRamal)
        {
            dalRamal dalRamal = null;

            var lstRamal = new List<entidadeRamal>();
            DataTable dt = null;

            try
            {
                dalRamal = new dalRamal();
                dt = dalRamal.Select(objRamal);

                foreach (DataRow dr in dt.Rows)
                {
                    objRamal = new entidadeRamal();


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

                    if (!Convert.IsDBNull(dr["DESCRICAO"]))
                        objRamal.DESCRICAO = dr["DESCRICAO"].ToString();

                    if (!Convert.IsDBNull(dr["IDRAMAL_FORMACAO"]))
                        objRamal.IDRAMAL_FORMACAO = Convert.ToInt32(dr["IDRAMAL_FORMACAO"]);

                    if (!Convert.IsDBNull(dr["IDRAMAL_ISOLACAO"]))
                        objRamal.IDRAMAL_ISOLACAO = Convert.ToInt32(dr["IDRAMAL_ISOLACAO"]);

                    if (!Convert.IsDBNull(dr["IDRAMAL_MATERIAL"]))
                        objRamal.IDRAMAL_MATERIAL = Convert.ToInt32(dr["IDRAMAL_MATERIAL"]);

                    if (!Convert.IsDBNull(dr["IDRAMAL_TENSAO_ISOLACAO"]))
                        objRamal.IDRAMAL_TENSAO_ISOLACAO = Convert.ToInt32(dr["IDRAMAL_TENSAO_ISOLACAO"]);

                    if (!Convert.IsDBNull(dr["IDSITUACAO"]))
                        objRamal.IDSITUACAO = Convert.ToInt32(dr["IDSITUACAO"]);

                    if (!Convert.IsDBNull(dr["IDPROPRIETARIO"]))
                        objRamal.IDPROPRIETARIO = Convert.ToInt32(dr["IDPROPRIETARIO"]);

                    if (!Convert.IsDBNull(dr["FASE_LIGACAO"]))
                        objRamal.FASE_LIGACAO = dr["FASE_LIGACAO"].ToString();

                    if (!Convert.IsDBNull(dr["TIPO_LIGACAO"]))
                        objRamal.TIPO_LIGACAO = dr["TIPO_LIGACAO"].ToString();

                    if (!Convert.IsDBNull(dr["BITOLA"]))
                        objRamal.BITOLA = dr["BITOLA"].ToString();

                    if (!Convert.IsDBNull(dr["COMPRIMENTO"]))
                        objRamal.COMPRIMENTO = dr["COMPRIMENTO"].ToString();

                    if (!Convert.IsDBNull(dr["SITUACAO"]))
                        objRamal.SITUACAO = dr["SITUACAO"].ToString();

                    if (!Convert.IsDBNull(dr["IDUSUARIOS"]))
                        objRamal.IDUSUARIOS = Convert.ToInt32(dr["IDUSUARIOS"]);


                    lstRamal.Add(objRamal);
                }
                return lstRamal;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeRamal> SelectMax(entidadeRamal objRamal)
        {
            dalRamal dalRamal = null;

            var lstRamal = new List<entidadeRamal>();
            DataTable dt = null;

            try
            {
                dalRamal = new dalRamal();
                dt = dalRamal.SelectMax(objRamal);

                foreach (DataRow dr in dt.Rows)
                {
                    objRamal = new entidadeRamal();

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


                    lstRamal.Add(objRamal);
                }
                return lstRamal;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeRamal> SelectOthersTables(entidadeRamal objRamal)
        {
            dalRamal dalRamal = null;

            var lstRamal = new List<entidadeRamal>();
            DataTable dt = null;

            try
            {
                dalRamal = new dalRamal();
                dt = dalRamal.SelectOthersTables(objRamal);

                foreach (DataRow dr in dt.Rows)
                {
                    objRamal = new entidadeRamal();
                    objRamal.entidadeRAMALFORMACAO = new entidadeRamalFormacao();
                    objRamal.entidadeRAMALISOLACAO = new entidadeRamalIsolacao();
                    objRamal.entidadeRAMALMATERIAL = new entidadeRamalMaterial();
                    objRamal.entidadeRAMALTENSAOISOLACAO = new entidadeRamalTensaoIsolacao();
                    objRamal.entidadeSITUACAO = new entidadeSituacao();
                    objRamal.entidadePROPRIETARIO = new entidadeProprietario();


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

                    if (!Convert.IsDBNull(dr["IDRAMAL_FORMACAO"]))
                        objRamal.IDRAMAL_FORMACAO = Convert.ToInt32(dr["IDRAMAL_FORMACAO"]);

                    if (!Convert.IsDBNull(dr["DESCRICAO_RAMAL_FORMACAO"]))
                        objRamal.entidadeRAMALFORMACAO.DESCRICAO = dr["DESCRICAO_RAMAL_FORMACAO"].ToString();

                    if (!Convert.IsDBNull(dr["IDRAMAL_ISOLACAO"]))
                        objRamal.IDRAMAL_ISOLACAO = Convert.ToInt32(dr["IDRAMAL_ISOLACAO"]);

                    if (!Convert.IsDBNull(dr["DESCRICAO_RAMAL_ISOLACAO"]))
                        objRamal.entidadeRAMALISOLACAO.DESCRICAO = dr["DESCRICAO_RAMAL_ISOLACAO"].ToString();

                    if (!Convert.IsDBNull(dr["IDRAMAL_MATERIAL"]))
                        objRamal.IDRAMAL_MATERIAL = Convert.ToInt32(dr["IDRAMAL_MATERIAL"]);

                    if (!Convert.IsDBNull(dr["DESCRICAO_RAMAL_MATERIAL"]))
                        objRamal.entidadeRAMALMATERIAL.DESCRICAO = dr["DESCRICAO_RAMAL_MATERIAL"].ToString();

                    if (!Convert.IsDBNull(dr["IDRAMAL_TENSAO_ISOLACAO"]))
                        objRamal.IDRAMAL_TENSAO_ISOLACAO = Convert.ToInt32(dr["IDRAMAL_TENSAO_ISOLACAO"]);

                    if (!Convert.IsDBNull(dr["DESCRICAO_RAMAL_TENSAO_ISOLACAO"]))
                        objRamal.entidadeRAMALTENSAOISOLACAO.DESCRICAO = dr["DESCRICAO_RAMAL_TENSAO_ISOLACAO"].ToString();

                    if (!Convert.IsDBNull(dr["IDSITUACAO"]))
                        objRamal.IDSITUACAO = Convert.ToInt32(dr["IDSITUACAO"]);

                    if (!Convert.IsDBNull(dr["DESCRICAO_SITUACAO"]))
                        objRamal.entidadeSITUACAO.DESCRICAO = dr["DESCRICAO_SITUACAO"].ToString();

                    if (!Convert.IsDBNull(dr["IDPROPRIETARIO"]))
                        objRamal.IDPROPRIETARIO = Convert.ToInt32(dr["IDPROPRIETARIO"]);

                    if (!Convert.IsDBNull(dr["DESCRICAO_PROPRIETARIO"]))
                        objRamal.entidadePROPRIETARIO.DESCRICAO = dr["DESCRICAO_PROPRIETARIO"].ToString();

                    if (!Convert.IsDBNull(dr["FASE_LIGACAO"]))
                        objRamal.FASE_LIGACAO = dr["FASE_LIGACAO"].ToString();

                    if (!Convert.IsDBNull(dr["TIPO_LIGACAO"]))
                        objRamal.TIPO_LIGACAO = dr["TIPO_LIGACAO"].ToString();

                    if (!Convert.IsDBNull(dr["BITOLA"]))
                        objRamal.BITOLA = dr["BITOLA"].ToString();

                    if (!Convert.IsDBNull(dr["COMPRIMENTO"]))
                        objRamal.COMPRIMENTO = dr["COMPRIMENTO"].ToString();

                    if (!Convert.IsDBNull(dr["RAMAL_DESCRICAO"]))
                        objRamal.DESCRICAO = dr["RAMAL_DESCRICAO"].ToString();


                    lstRamal.Add(objRamal);
                }
                return lstRamal;
            }
            catch (Exception)
            {
                throw;
            }
        }



    }
}
