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 repositorioOs
    {
        public IList<entidadeOs> Select(entidadeOs objOs)
        {
            dalOs dalOs = null;

            var lstOs = new List<entidadeOs>();
            DataTable dt = null;

            try
            {
                dalOs = new dalOs();
                dt = dalOs.Select(objOs);

                foreach (DataRow dr in dt.Rows)
                {
                    objOs = new entidadeOs();
                    objOs.entidadeLAUDOTENSAO = new entidadeLaudoTensao();
                    objOs.entidadeRESSARCIMENTONIVELTENSAO = new entidadeRessarcimentoNivelTensao();
                    objOs.entidadeUC = new entidadeUC();


                    if (!Convert.IsDBNull(dr["O1_SEQUENCIA_OS"]))
                        objOs.SEQUENCIA_OS = Convert.ToInt32(dr["O1_SEQUENCIA_OS"]);

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

                    if (!Convert.IsDBNull(dr["O1_ID_SUB"]))
                        objOs.ID_SUB = Convert.ToInt32(dr["O1_ID_SUB"]);

                    if (!Convert.IsDBNull(dr["O1_DATA"]))
                        objOs.DATA = Convert.ToDateTime(dr["O1_DATA"]);

                    if (!Convert.IsDBNull(dr["O1_DATA_PROJETO"]))
                        objOs.DATA_PROJETO = Convert.ToDateTime(dr["O1_DATA_PROJETO"]);

                    if (!Convert.IsDBNull(dr["O1_DATA_CONCLUSAO"]))
                        objOs.DATA_CONCLUSAO = Convert.ToDateTime(dr["O1_DATA_CONCLUSAO"]);

                    if (!Convert.IsDBNull(dr["O1_DATA_REPROVACAO"]))
                        objOs.DATA_REPROVACAO = Convert.ToDateTime(dr["O1_DATA_REPROVACAO"]);

                    if (!Convert.IsDBNull(dr["O1_DATA_CANCELAMENTO"]))
                        objOs.DATA_CANCELAMENTO = Convert.ToDateTime(dr["O1_DATA_CANCELAMENTO"]);

                    if (!Convert.IsDBNull(dr["O1_DATA_OCORRENCIA"]))
                        objOs.DATA_OCORRENCIA = Convert.ToDateTime(dr["O1_DATA_OCORRENCIA"]);

                    if (!Convert.IsDBNull(dr["O1_STATUS"]))
                        objOs.STATUS = dr["O1_STATUS"].ToString();

                    if (!Convert.IsDBNull(dr["O1_STATUS_SUB"]))
                        objOs.STATUS_SUB = dr["O1_STATUS_SUB"].ToString();

                    if (!Convert.IsDBNull(dr["LA_DATA_INICIAL"]))
                        objOs.entidadeLAUDOTENSAO.DATA_INICIAL = Convert.ToDateTime(dr["LA_DATA_INICIAL"]);

                    if (!Convert.IsDBNull(dr["LA_DATA_FINAL"]))
                        objOs.entidadeLAUDOTENSAO.DATA_FINAL = Convert.ToDateTime(dr["LA_DATA_FINAL"]);

                    if (!Convert.IsDBNull(dr["LA_PROCEDENTE"]))
                        objOs.entidadeLAUDOTENSAO.PROCEDENTE = Convert.ToInt32(dr["LA_PROCEDENTE"]);

                    if (!Convert.IsDBNull(dr["DRP"]))
                        objOs.entidadeLAUDOTENSAO.DRP = Convert.ToDouble(dr["DRP"]);

                    if (!Convert.IsDBNull(dr["DRPM"]))
                        objOs.entidadeLAUDOTENSAO.DRPM = Convert.ToDouble(dr["DRPM"]);

                    if (!Convert.IsDBNull(dr["DRC"]))
                        objOs.entidadeLAUDOTENSAO.DRC = Convert.ToDouble(dr["DRC"]);

                    if (!Convert.IsDBNull(dr["DRCM"]))
                        objOs.entidadeLAUDOTENSAO.DRCM = Convert.ToDouble(dr["DRCM"]);

                    if (!Convert.IsDBNull(dr["O2_DATA"]))
                        objOs.entidadeUC.DATA_CADASTRO = Convert.ToDateTime(dr["O2_DATA"]);

                    if (!Convert.IsDBNull(dr["O2_DATA_PROJETO"]))
                        objOs.entidadeUC.DATA_CONTRATO_DEMANDA = Convert.ToDateTime(dr["O2_DATA_PROJETO"]);

                    if (!Convert.IsDBNull(dr["O2_DATA_CONCLUSAO"]))
                        objOs.entidadeUC.DATA_CORTE = Convert.ToDateTime(dr["O2_DATA_CONCLUSAO"]);

                    if (!Convert.IsDBNull(dr["O2_DATA_REPROVACAO"]))
                        objOs.entidadeUC.DATA_DESLIGAMENTO = Convert.ToDateTime(dr["O2_DATA_REPROVACAO"]);

                    if (!Convert.IsDBNull(dr["O2_DATA_CANCELAMENTO"]))
                        objOs.entidadeUC.DATA_HORA_USUARIO = Convert.ToDateTime(dr["O2_DATA_CANCELAMENTO"]);

                    if (!Convert.IsDBNull(dr["O2_STATUS"]))
                        objOs.entidadeUC.TIPO = dr["O2_STATUS"].ToString();

                    if (!Convert.IsDBNull(dr["O2_STATUS_SUB"]))
                        objOs.entidadeUC.TIPO_FASE = dr["O2_STATUS_SUB"].ToString();

                    if (!Convert.IsDBNull(dr["RE_DRP"]))
                        objOs.entidadeRESSARCIMENTONIVELTENSAO.RE_DRP = Convert.ToDecimal(dr["RE_DRP"]);

                    if (!Convert.IsDBNull(dr["RE_DRPM"]))
                        objOs.entidadeRESSARCIMENTONIVELTENSAO.RE_DRPM = Convert.ToDecimal(dr["RE_DRPM"]);

                    if (!Convert.IsDBNull(dr["RE_K1"]))
                        objOs.entidadeRESSARCIMENTONIVELTENSAO.RE_K1 = Convert.ToInt32(dr["RE_K1"]);

                    if (!Convert.IsDBNull(dr["RE_DRC"]))
                        objOs.entidadeRESSARCIMENTONIVELTENSAO.RE_DRC = Convert.ToDecimal(dr["RE_DRC"]);

                    if (!Convert.IsDBNull(dr["RE_DRCM"]))
                        objOs.entidadeRESSARCIMENTONIVELTENSAO.RE_DRCM = Convert.ToDecimal(dr["RE_DRCM"]);

                    if (!Convert.IsDBNull(dr["RE_K2"]))
                        objOs.entidadeRESSARCIMENTONIVELTENSAO.RE_K2 = Convert.ToInt32(dr["RE_K2"]);

                    lstOs.Add(objOs);
                }
                return lstOs;
            }
            catch (Exception)
            {
                throw;
            }
        }

    }
}
