Exemplo n.º 1
0
        /// <summary>
        /// Realiza la busqueda de Multiple Parametro Valor
        /// </summary>
        /// <param name="filtro">Filtro de Parametro Valor</param>
        /// <returns>Listado de Multiple parametro valor</returns>
        public ProcessResult <Dictionary <string, List <Tuple <string, string, string> > > > BuscarMultipleParametroValor(ParametroValorRequest filtro)
        {
            ProcessResult <Dictionary <string, List <Tuple <string, string, string> > > > resultado = new ProcessResult <Dictionary <string, List <Tuple <string, string, string> > > >();

            resultado.Result = new Dictionary <string, List <Tuple <string, string, string> > >();
            try
            {
                ParametroValorSeccionLogic oParametroValorSeccionLogic = parametroValorLogicRepository.BuscarParametroValorSeccion(
                    filtro.CodigoParametro,
                    filtro.IndicadorEmpresa,
                    (filtro.CodigoEmpresa != null ? new Guid(filtro.CodigoEmpresa) : (Guid?)null),
                    (filtro.CodigoSistema != null ? new Guid(filtro.CodigoSistema) : (Guid?)null),
                    filtro.CodigoIdentificador,
                    filtro.TipoParametro,
                    filtro.CodigoSeccion,
                    filtro.CodigoValor,
                    filtro.Valor,
                    filtro.EstadoRegistro);

                var array = filtro.CodigoIdentificador.Split('|');
                if (array.Count() > 0)
                {
                    List <Tuple <string, string, string> > tuplaEspaniol = new List <Tuple <string, string, string> >();
                    List <Tuple <string, string, string> > tuplaIngles   = new List <Tuple <string, string, string> >();

                    foreach (var item2 in array)
                    {
                        Dictionary <string, List <Tuple <string, string, string> > > diccionario = new Dictionary <string, List <Tuple <string, string, string> > >();
                        var listaParametroValor = new List <ParametroValorResponse>();
                        List <ParametroValorLogic>   listado               = new List <ParametroValorLogic>();
                        List <ParametroSeccionLogic> listaSecciones        = new List <ParametroSeccionLogic>();
                        List <ParametroValorLogic>   listaValorRelacionado = new List <ParametroValorLogic>();

                        if (oParametroValorSeccionLogic != null)
                        {
                            listado               = oParametroValorSeccionLogic.ListadoValor.Where(x => x.CodigoIdentificador == item2).ToList();
                            listaSecciones        = oParametroValorSeccionLogic.ListadoSeccionValor.Where(x => x.CodigoParametro == Convert.ToInt32(item2)).ToList();
                            listaValorRelacionado = oParametroValorSeccionLogic.ListadoValorRelacionado.Where(x => x.CodigoParametro == Convert.ToInt32(item2)).ToList();
                        }

                        var agrupado = listado
                                       .GroupBy(c => c.CodigoValor)
                                       .Select(g => new
                        {
                            CodigoValor = g.Key,
                            Valor       = g.Where(c => c.CodigoSeccion == 1),
                            Descripcion = g.Where(c => c.CodigoSeccion == 2),
                            Idioma      = g.Where(c => c.CodigoSeccion == 3)
                        });

                        foreach (var item in agrupado)
                        {
                            string valor       = string.Empty;
                            string descripcion = string.Empty;
                            string idioma      = string.Empty;

                            foreach (var itemValor in item.Valor)
                            {
                                valor = itemValor.Valor;
                            }
                            foreach (var itemDescripcion in item.Descripcion)
                            {
                                descripcion = itemDescripcion.Valor;
                            }
                            foreach (var itemIdioma in item.Idioma)
                            {
                                idioma = itemIdioma.Valor;
                            }

                            if (idioma == DatosConstantes.ParametrosGenerales.CodigoIdiomaEspaniol)
                            {
                                tuplaEspaniol.Add(new Tuple <string, string, string>(valor, descripcion, idioma));
                            }
                            else
                            {
                                tuplaIngles.Add(new Tuple <string, string, string>(valor, descripcion, idioma));
                            }
                        }

                        if (filtro.CodigoIdioma != DatosConstantes.ParametrosGenerales.CodigoIdiomaEspaniol)
                        {
                            resultado.Result.Add(item2, tuplaIngles);
                        }
                        else
                        {
                            resultado.Result.Add(item2, tuplaEspaniol);
                        }

                        tuplaIngles   = new List <Tuple <string, string, string> >();
                        tuplaEspaniol = new List <Tuple <string, string, string> >();
                    }
                }
            }
            catch (Exception e)
            {
                resultado.Result    = new Dictionary <string, List <Tuple <string, string, string> > >();
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <GenericService>(e);
            }

            return(resultado);
        }
        /// <summary>
        /// Realiza la busqueda de Parametro Valor
        /// </summary>
        /// <param name="codigoParametro">Código de Parametro</param>
        /// <param name="indicadorEmpresa">Indicador de Global</param>
        /// <param name="codigoEmpresa">Código de Empresa</param>
        /// <param name="codigoSistema">Código de Sistema</param>
        /// <param name="codigoIdentificador">Código Identificador</param>
        /// <param name="tipoParametro">Tipo de Parámetro</param>
        /// <param name="codigoSeccion">Código de Sección</param>
        /// <param name="codigoValor">Código de Valor</param>
        /// <param name="valor">Valor</param>
        /// <param name="estadoRegistro">Estado de Registro</param>
        /// <returns>Lista de valores de parametro</returns>
        public ParametroValorSeccionLogic BuscarParametroValorSeccion(int?codigoParametro, bool?indicadorEmpresa, Guid?codigoEmpresa, Guid?codigoSistema, string codigoIdentificador, string tipoParametro, int?codigoSeccion, int?codigoValor, string valor, string estadoRegistro)
        {
            ParametroValorSeccionLogic   oParametroValorSeccionLogic = new ParametroValorSeccionLogic();
            List <ParametroValorLogic>   resultado        = new List <ParametroValorLogic>();
            List <ParametroSeccionLogic> seccion          = new List <ParametroSeccionLogic>();
            List <ParametroValorLogic>   valorRelacionado = new List <ParametroValorLogic>();

            oParametroValorSeccionLogic.ListadoSeccionValor     = new List <ParametroSeccionLogic>();
            oParametroValorSeccionLogic.ListadoValorRelacionado = new List <ParametroValorLogic>();
            oParametroValorSeccionLogic.ListadoValor            = new List <ParametroValorLogic>();
            try
            {
                SqlParameter[] parametros = new SqlParameter[]
                {
                    new SqlParameter("CODIGO_PARAMETRO", SqlDbType.Int)
                    {
                        Value = (object)codigoParametro ?? DBNull.Value
                    },
                    new SqlParameter("INDICADOR_EMPRESA", SqlDbType.Bit)
                    {
                        Value = (object)indicadorEmpresa ?? DBNull.Value
                    },
                    new SqlParameter("CODIGO_EMPRESA", SqlDbType.UniqueIdentifier)
                    {
                        Value = (object)codigoEmpresa ?? DBNull.Value
                    },
                    new SqlParameter("CODIGO_SISTEMA", SqlDbType.UniqueIdentifier)
                    {
                        Value = (object)codigoSistema ?? DBNull.Value
                    },
                    new SqlParameter("CODIGO_IDENTIFICADOR", SqlDbType.NVarChar)
                    {
                        Value = (object)codigoIdentificador ?? DBNull.Value
                    },
                    new SqlParameter("TIPO_PARAMETRO", SqlDbType.Char)
                    {
                        Value = (object)tipoParametro ?? DBNull.Value
                    },
                    new SqlParameter("CODIGO_SECCION", SqlDbType.Int)
                    {
                        Value = (object)codigoSeccion ?? DBNull.Value
                    },
                    new SqlParameter("CODIGO_VALOR", SqlDbType.Int)
                    {
                        Value = (object)codigoValor ?? DBNull.Value
                    },
                    new SqlParameter("VALOR", SqlDbType.VarChar)
                    {
                        Value = (object)valor ?? DBNull.Value
                    },
                    new SqlParameter("ESTADO_REGISTRO", SqlDbType.Char)
                    {
                        Value = (object)estadoRegistro ?? DBNull.Value
                    }
                };
                var command = this.dataBaseProvider.DataBase.Connection.CreateCommand();
                command.CommandText = "[POL].[USP_PARAMETRO_VALOR_PARAMETRO_SECCION_TODOS]";
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddRange(parametros);

                this.dataBaseProvider.DataBase.Connection.Open();
                var reader = command.ExecuteReader();
                resultado = ((IObjectContextAdapter)this.dataBaseProvider).ObjectContext.Translate <ParametroValorLogic>(reader).ToList();
                reader.NextResult();
                seccion = ((IObjectContextAdapter)this.dataBaseProvider).ObjectContext.Translate <ParametroSeccionLogic>(reader).ToList();
                reader.NextResult();
                valorRelacionado = ((IObjectContextAdapter)this.dataBaseProvider).ObjectContext.Translate <ParametroValorLogic>(reader).ToList();
                if (resultado != null)
                {
                    oParametroValorSeccionLogic.ListadoValor = resultado;
                    if (seccion != null)
                    {
                        oParametroValorSeccionLogic.ListadoSeccionValor = seccion;
                        if (valorRelacionado != null)
                        {
                            oParametroValorSeccionLogic.ListadoValorRelacionado = valorRelacionado;
                        }
                    }
                }
                else
                {
                    oParametroValorSeccionLogic = new ParametroValorSeccionLogic();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                this.dataBaseProvider.DataBase.Connection.Close();
            }
            return(oParametroValorSeccionLogic);
        }
Exemplo n.º 3
0
        ///// <summary>
        ///// Realiza la busqueda de Parametro Valor
        ///// </summary>
        ///// <param name="filtro">Filtro de Parametro Valor</param>
        ///// <returns>Listado de parametro valor</returns>
        //public ProcessResult<List<ParametroValorResponse>> BuscarParametroValor(ParametroValorRequest filtro)
        //{
        //    ProcessResult<List<ParametroValorResponse>> resultado = new ProcessResult<List<ParametroValorResponse>>();

        //    try
        //    {
        //        List<ParametroValorLogic> listado = parametroValorLogicRepository.BuscarParametroValor(
        //            filtro.CodigoParametro,
        //            filtro.IndicadorEmpresa,
        //            (filtro.CodigoEmpresa != null ? new Guid(filtro.CodigoEmpresa) : (Guid?)null),
        //            (filtro.CodigoSistema != null ? new Guid(filtro.CodigoSistema) : (Guid?)null),
        //            filtro.CodigoIdentificador,
        //            filtro.TipoParametro,
        //            filtro.CodigoSeccion,
        //            filtro.CodigoValor,
        //            filtro.Valor,
        //            filtro.EstadoRegistro);

        //        var listaParametroValor = new List<ParametroValorResponse>();
        //        ParametroValorResponse parametroValor = new ParametroValorResponse();
        //        parametroValor.RegistroCadena = new Dictionary<string, string>();
        //        parametroValor.RegistroObjeto = new Dictionary<string, object>();

        //        for (var iterator = 0; iterator < listado.Count; iterator++)
        //        {
        //            var itemValue = listado[iterator];

        //            var listSecciones = parametroSeccionService.BuscarParametroSeccion(new ParametroSeccionRequest()
        //            {
        //                CodigoParametro = itemValue.CodigoParametro
        //            }).Result;

        //            var seccionActual = listSecciones.Where(itemSeccion => itemSeccion.CodigoSeccion == itemValue.CodigoSeccion).FirstOrDefault();
        //            if (seccionActual != null)
        //            {
        //                string valorTexto = ParametroValorAdapter.ObtenerParametroValorTexto(itemValue.CodigoTipoDato, itemValue.Valor);
        //                object valorObject = ParametroValorAdapter.ObtenerParametroValorObjeto(itemValue.CodigoTipoDato, itemValue.Valor);

        //                //Asginación de la Sección con su respectivo Valor Original
        //                parametroValor.RegistroCadena.Add(itemValue.CodigoSeccion.ToString(), valorTexto);
        //                parametroValor.RegistroObjeto.Add(itemValue.CodigoSeccion.ToString(), valorObject);

        //                //Asginación de la Sección con su respectivo Valor Relacionado
        //                if (seccionActual.CodigoParametroRelacionado != null && seccionActual.CodigoSeccionRelacionado != null && seccionActual.CodigoSeccionRelacionadoMostrar != null)
        //                {
        //                    var parametroValorRelacionado = parametroValorLogicRepository.BuscarParametroValor(seccionActual.CodigoParametroRelacionado, null, null, null, null, null, null, null, null, DatosConstantes.EstadoRegistro.Activo);

        //                    var codigoValorRelacionado = parametroValorRelacionado.Where(itemWhere => itemWhere.CodigoSeccion == seccionActual.CodigoSeccionRelacionado && itemWhere.Valor == valorTexto).Select(itemSelect => itemSelect.CodigoValor).FirstOrDefault();

        //                    var valorRelacionado = parametroValorRelacionado.Where(itemWhere => itemWhere.CodigoValor == codigoValorRelacionado && itemWhere.CodigoSeccion == seccionActual.CodigoSeccionRelacionadoMostrar).FirstOrDefault() ?? new ParametroValorLogic();
        //                    object valorObjectRelacionado = ParametroValorAdapter.ObtenerParametroValorObjeto(valorRelacionado.CodigoTipoDato, valorRelacionado.Valor);
        //                    string valorTextoRelacionado = ParametroValorAdapter.ObtenerParametroValorTexto(valorRelacionado.CodigoTipoDato, valorRelacionado.Valor);

        //                    parametroValor.RegistroCadena.Add("-" + itemValue.CodigoSeccion.ToString(), valorTextoRelacionado);
        //                    parametroValor.RegistroObjeto.Add("-" + itemValue.CodigoSeccion.ToString(), valorObjectRelacionado);
        //                }


        //                //Asginación del Estado de Registro
        //                if (parametroValor.EstadoRegistro == null || parametroValor.EstadoRegistro == DatosConstantes.EstadoRegistro.Inactivo)
        //                {
        //                    parametroValor.EstadoRegistro = itemValue.EstadoRegistro;
        //                }

        //                //Añade el registro en la Lista de Parametros según su quiebre
        //                if (iterator == listado.Count - 1 || itemValue.CodigoValor != listado[iterator + 1].CodigoValor)
        //                {
        //                    parametroValor.CodigoValor = itemValue.CodigoValor;
        //                    parametroValor.CodigoIdentificador = itemValue.CodigoIdentificador;
        //                    parametroValor.CodigoParametro = itemValue.CodigoParametro;

        //                    var seccionesFaltante = listSecciones.Where(itemWhere => !parametroValor.RegistroCadena.Any(itemAny => itemAny.Key == itemWhere.CodigoSeccion.ToString())).ToList();

        //                    foreach (var seccion in seccionesFaltante)
        //                    {
        //                        //Setear la Sección con su respectivo Valor
        //                        parametroValor.RegistroCadena.Add(seccion.CodigoSeccion.ToString(), null);

        //                        parametroValor.RegistroObjeto.Add(seccion.CodigoSeccion.ToString(), null);
        //                    }

        //                    listaParametroValor.Add(parametroValor);
        //                    //Limpiar variable
        //                    parametroValor = new ParametroValorResponse();
        //                    parametroValor.RegistroCadena = new Dictionary<string, string>();
        //                    parametroValor.RegistroObjeto = new Dictionary<string, object>();
        //                }
        //            }
        //        }

        //        resultado.Result = listaParametroValor;
        //    }
        //    catch (Exception e)
        //    {
        //        resultado.Result = new List<ParametroValorResponse>();
        //        resultado.IsSuccess = false;
        //        resultado.Exception = new ApplicationLayerException<ParametroValorService>(e);
        //    }

        //    return resultado;
        //}

        /// <summary>
        /// Realiza la busqueda de Parametro Valor
        /// </summary>
        /// <param name="filtro">Filtro de Parametro Valor</param>
        /// <returns>Listado de parametro valor</returns>
        public ProcessResult <List <ParametroValorResponse> > BuscarParametroValor(ParametroValorRequest filtro)
        {
            ProcessResult <List <ParametroValorResponse> > resultado = new ProcessResult <List <ParametroValorResponse> >();

            try
            {
                ParametroValorSeccionLogic oParametroValorSeccionLogic = parametroValorLogicRepository.BuscarParametroValorSeccion(
                    filtro.CodigoParametro,
                    filtro.IndicadorEmpresa,
                    (filtro.CodigoEmpresa != null ? new Guid(filtro.CodigoEmpresa) : (Guid?)null),
                    (filtro.CodigoSistema != null ? new Guid(filtro.CodigoSistema) : (Guid?)null),
                    filtro.CodigoIdentificador,
                    filtro.TipoParametro,
                    filtro.CodigoSeccion,
                    filtro.CodigoValor,
                    filtro.Valor,
                    filtro.EstadoRegistro);

                List <ParametroValorLogic>   listado               = new List <ParametroValorLogic>();
                List <ParametroSeccionLogic> listaSecciones        = new List <ParametroSeccionLogic>();
                List <ParametroValorLogic>   listaValorRelacionado = new List <ParametroValorLogic>();
                if (oParametroValorSeccionLogic != null)
                {
                    listado               = oParametroValorSeccionLogic.ListadoValor;
                    listaSecciones        = oParametroValorSeccionLogic.ListadoSeccionValor;
                    listaValorRelacionado = oParametroValorSeccionLogic.ListadoValorRelacionado;
                }


                var listaParametroValor = new List <ParametroValorResponse>();
                ParametroValorResponse parametroValor = new ParametroValorResponse();
                parametroValor.RegistroCadena = new Dictionary <string, string>();
                parametroValor.RegistroObjeto = new Dictionary <string, object>();

                for (var iterator = 0; iterator < listado.Count; iterator++)
                {
                    var itemValue = listado[iterator];

                    var listSecciones = listaSecciones.Where(x => x.CodigoParametro == itemValue.CodigoParametro);

                    var seccionActual = listSecciones.Where(itemSeccion => itemSeccion.CodigoSeccion == itemValue.CodigoSeccion).FirstOrDefault();
                    if (seccionActual != null)
                    {
                        string valorTexto  = ParametroValorAdapter.ObtenerParametroValorTexto(itemValue.CodigoTipoDato, itemValue.Valor);
                        object valorObject = ParametroValorAdapter.ObtenerParametroValorObjeto(itemValue.CodigoTipoDato, itemValue.Valor);

                        //Asginación de la Sección con su respectivo Valor Original
                        parametroValor.RegistroCadena.Add(itemValue.CodigoSeccion.ToString(), valorTexto);
                        parametroValor.RegistroObjeto.Add(itemValue.CodigoSeccion.ToString(), valorObject);

                        //Asginación de la Sección con su respectivo Valor Relacionado
                        if (seccionActual.CodigoParametroRelacionado != null && seccionActual.CodigoSeccionRelacionado != null && seccionActual.CodigoSeccionRelacionadoMostrar != null)
                        {
                            var parametroValorRelacionado = listaValorRelacionado.Where(x => x.CodigoParametro == seccionActual.CodigoParametroRelacionado);

                            var codigoValorRelacionado = parametroValorRelacionado.Where(itemWhere => itemWhere.CodigoSeccion == seccionActual.CodigoSeccionRelacionado && itemWhere.Valor == valorTexto).Select(itemSelect => itemSelect.CodigoValor).FirstOrDefault();

                            var    valorRelacionado       = parametroValorRelacionado.Where(itemWhere => itemWhere.CodigoValor == codigoValorRelacionado && itemWhere.CodigoSeccion == seccionActual.CodigoSeccionRelacionadoMostrar).FirstOrDefault() ?? new ParametroValorLogic();
                            object valorObjectRelacionado = ParametroValorAdapter.ObtenerParametroValorObjeto(valorRelacionado.CodigoTipoDato, valorRelacionado.Valor);
                            string valorTextoRelacionado  = ParametroValorAdapter.ObtenerParametroValorTexto(valorRelacionado.CodigoTipoDato, valorRelacionado.Valor);

                            parametroValor.RegistroCadena.Add("-" + itemValue.CodigoSeccion.ToString(), valorTextoRelacionado);
                            parametroValor.RegistroObjeto.Add("-" + itemValue.CodigoSeccion.ToString(), valorObjectRelacionado);
                        }


                        //Asginación del Estado de Registro
                        if (parametroValor.EstadoRegistro == null || parametroValor.EstadoRegistro == DatosConstantes.EstadoRegistro.Inactivo)
                        {
                            parametroValor.EstadoRegistro = itemValue.EstadoRegistro;
                        }

                        //Añade el registro en la Lista de Parametros según su quiebre
                        if (iterator == listado.Count - 1 || itemValue.CodigoValor != listado[iterator + 1].CodigoValor)
                        {
                            parametroValor.CodigoValor         = itemValue.CodigoValor;
                            parametroValor.CodigoIdentificador = itemValue.CodigoIdentificador;
                            parametroValor.CodigoParametro     = itemValue.CodigoParametro;

                            var seccionesFaltante = listSecciones.Where(itemWhere => !parametroValor.RegistroCadena.Any(itemAny => itemAny.Key == itemWhere.CodigoSeccion.ToString())).ToList();

                            foreach (var seccion in seccionesFaltante)
                            {
                                //Setear la Sección con su respectivo Valor
                                parametroValor.RegistroCadena.Add(seccion.CodigoSeccion.ToString(), null);

                                parametroValor.RegistroObjeto.Add(seccion.CodigoSeccion.ToString(), null);
                            }

                            listaParametroValor.Add(parametroValor);
                            //Limpiar variable
                            parametroValor = new ParametroValorResponse();
                            parametroValor.RegistroCadena = new Dictionary <string, string>();
                            parametroValor.RegistroObjeto = new Dictionary <string, object>();
                        }
                    }
                }

                resultado.Result = listaParametroValor;
            }
            catch (Exception e)
            {
                resultado.Result    = new List <ParametroValorResponse>();
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <ParametroValorService>(e);
            }

            return(resultado);
        }