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

        public void Insert(entidadeClasse objClasse)
        {
            dalClasse dalClasse = null;

            try
            {
                dalClasse = new dalClasse();

                dalClasse.Insert(objClasse);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Update(entidadeClasse objClasse)
        {
            dalClasse dalClasse = null;

            try
            {
                dalClasse = new dalClasse();

                dalClasse.Update(objClasse);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Delete(entidadeClasse objClasse)
        {
            dalClasse dalClasse = null;

            try
            {
                dalClasse = new dalClasse();

                dalClasse.Delete(objClasse);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeClasse> Select(entidadeClasse objClasse)
        {
            dalClasse dalClasse = null;

            var lstClasse = new List<entidadeClasse>();
            DataTable dt = null;

            try
            {
                dalClasse = new dalClasse();
                dt = dalClasse.Select(objClasse);

                foreach (DataRow dr in dt.Rows)
                {
                    objClasse = new entidadeClasse();


                    if (!Convert.IsDBNull(dr["CODIGO"]))
                        objClasse.CODIGO = dr["CODIGO"].ToString();

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

                    if (!Convert.IsDBNull(dr["CONTA_FATURAMENTO"]))
                        objClasse.CONTA_FATURAMENTO = dr["CONTA_FATURAMENTO"].ToString();

                    if (!Convert.IsDBNull(dr["CONTA_FATURAMENTO_PARC"]))
                        objClasse.CONTA_FATURAMENTO_PARC = dr["CONTA_FATURAMENTO_PARC"].ToString();


                    lstClasse.Add(objClasse);
                }
                return lstClasse;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeClasse> Select_1(entidadeClasse objClasse)
        {
            dalClasse dalClasse = null;

            var lstClasse = new List<entidadeClasse>();
            DataTable dt = null;

            try
            {
                dalClasse = new dalClasse();
                dt = dalClasse.Select_1(objClasse);

                foreach (DataRow dr in dt.Rows)
                {
                    objClasse = new entidadeClasse();


                    if (!Convert.IsDBNull(dr["CODIGO"]))
                        objClasse.CODIGO = dr["CODIGO"].ToString();

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


                    lstClasse.Add(objClasse);
                }
                return lstClasse;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeClasse> SelectOthersTables(entidadeClasse objClasse)
        {
            dalClasse dalClasse = null;

            var lstClasse = new List<entidadeClasse>();
            DataTable dt = null;

            try
            {
                dalClasse = new dalClasse();
                dt = dalClasse.SelectOthersTables(objClasse);

                foreach (DataRow dr in dt.Rows)
                {
                    objClasse = new entidadeClasse();

                    if (!Convert.IsDBNull(dr["CODIGO"]))
                        objClasse.CODIGO = dr["CODIGO"].ToString();

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


                    lstClasse.Add(objClasse);
                }
                return lstClasse;
            }
            catch (Exception)
            {
                throw;
            }
        }

    }
}
