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

        public void Insert(entidadeUsuario objUsuario)
        {
            dalUsuario dalUsuario = null;

            try
            {
                dalUsuario = new dalUsuario();

                dalUsuario.Insert(objUsuario);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Update(entidadeUsuario objUsuario)
        {
            dalUsuario dalUsuario = null;

            try
            {
                dalUsuario = new dalUsuario();

                dalUsuario.Update(objUsuario);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Update_1(entidadeUsuario objUsuario)
        {
            dalUsuario dalUsuario = null;

            try
            {
                dalUsuario = new dalUsuario();

                dalUsuario.Update_1(objUsuario);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void Delete(entidadeUsuario objUsuario)
        {
            dalUsuario dalUsuario = null;

            try
            {
                dalUsuario = new dalUsuario();

                dalUsuario.Delete(objUsuario);
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeUsuario> Select(entidadeUsuario objUsuario)
        {
            dalUsuario dalUsuario = null;

            var lstUsuario = new List<entidadeUsuario>();
            DataTable dt = null;

            try
            {
                dalUsuario = new dalUsuario();
                dt = dalUsuario.Select(objUsuario);

                foreach (DataRow dr in dt.Rows)
                {
                    objUsuario = new entidadeUsuario();


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

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

                    if (!Convert.IsDBNull(dr["LOGIN"]))
                        objUsuario.LOGIN = dr["LOGIN"].ToString();

                    if (!Convert.IsDBNull(dr["SENHA"]))
                        objUsuario.SENHA = dr["SENHA"].ToString();

                    if (!Convert.IsDBNull(dr["ADMINISTRADOR"]))
                        objUsuario.ADMINISTRADOR = Convert.ToInt32(dr["ADMINISTRADOR"]);

                    if (!Convert.IsDBNull(dr["ULTIMO_ACESSO"]))
                        objUsuario.ULTIMO_ACESSO = Convert.ToDateTime(dr["ULTIMO_ACESSO"]);

                    if (!Convert.IsDBNull(dr["PERFIL_MENU"]))
                        objUsuario.PERFIL_MENU = Convert.ToInt32(dr["PERFIL_MENU"]);


                    lstUsuario.Add(objUsuario);
                }
                return lstUsuario;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeUsuario> Select_1(entidadeUsuario objUsuario)
        {
            dalUsuario dalUsuario = null;

            var lstUsuario = new List<entidadeUsuario>();
            DataTable dt = null;

            try
            {
                dalUsuario = new dalUsuario();
                dt = dalUsuario.Select_1(objUsuario);

                foreach (DataRow dr in dt.Rows)
                {
                    objUsuario = new entidadeUsuario();


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

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

                    if (!Convert.IsDBNull(dr["LOGIN"]))
                        objUsuario.LOGIN = dr["LOGIN"].ToString();

                    if (!Convert.IsDBNull(dr["SENHA"]))
                        objUsuario.SENHA = dr["SENHA"].ToString();

                    if (!Convert.IsDBNull(dr["ADMINISTRADOR"]))
                        objUsuario.ADMINISTRADOR = Convert.ToInt32(dr["ADMINISTRADOR"]);

                    if (!Convert.IsDBNull(dr["ULTIMO_ACESSO"]))
                        objUsuario.ULTIMO_ACESSO = Convert.ToDateTime(dr["ULTIMO_ACESSO"]);

                    if (!Convert.IsDBNull(dr["PERFIL_MENU"]))
                        objUsuario.PERFIL_MENU = Convert.ToInt32(dr["PERFIL_MENU"]);


                    lstUsuario.Add(objUsuario);
                }
                return lstUsuario;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public IList<entidadeUsuario> SelectCount(entidadeUsuario objUsuario)
        {
            dalUsuario dalUsuario = null;

            var lstUsuario = new List<entidadeUsuario>();
            DataTable dt = null;

            try
            {
                dalUsuario = new dalUsuario();
                dt = dalUsuario.SelectCount(objUsuario);

                foreach (DataRow dr in dt.Rows)
                {
                    objUsuario = new entidadeUsuario();


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


                    lstUsuario.Add(objUsuario);
                }
                return lstUsuario;
            }
            catch (Exception)
            {
                throw;
            }
        }

    }
}
