Пример #1
0
        /// <summary>
        /// Realiza la busqueda de Parametro Valor
        /// </summary>
        /// <param name="filtro">Filtro de Parametro Valor</param>
        /// <returns>Listado de parametro valor dinamico</returns>
        public ProcessResult <List <dynamic> > BuscarParametroValorDinamico(ParametroValorRequest filtro)
        {
            var parametroValor = this.BuscarParametroValor(filtro);
            var listaDinamica  = new List <dynamic>();

            parametroValor.Result.ForEach(p =>
            {
                var expandoObject     = new ExpandoObject();
                var expandoDictionary = (IDictionary <string, object>)expandoObject;

                if (p.RegistroObjeto != null)
                {
                    foreach (var campo in p.RegistroObjeto)
                    {
                        expandoDictionary.Add("Atributo" + campo.Key, campo.Value);
                    }
                    listaDinamica.Add((dynamic)expandoObject);
                }
            });

            var resultado = new ProcessResult <List <dynamic> >();

            resultado.Result = listaDinamica;
            return(resultado);
        }
Пример #2
0
        /// <summary>
        /// Realiza el eliminar de un de Parametro Valor
        /// </summary>
        /// <param name="filtro">Parametro Valor a Eliminar</param>
        /// <returns>Indicador de Error</returns>
        public ProcessResult <string> EliminarParametroValor(ParametroValorRequest filtro)
        {
            string result           = "0";
            var    resultadoProceso = new ProcessResult <string>();

            try
            {
                var parametroActual = parametroService.BuscarParametro(new ParametroRequest()
                {
                    CodigoParametro = filtro.CodigoParametro
                }).Result.FirstOrDefault();

                if (!parametroActual.IndicadorPermiteEliminar)
                {
                    result = "2";
                    resultadoProceso.Result    = result;
                    resultadoProceso.IsSuccess = false;
                    return(resultadoProceso);
                }
                var parametroValorActual = BuscarParametroValor(new ParametroValorRequest()
                {
                    CodigoParametro = filtro.CodigoParametro,
                    CodigoValor     = filtro.CodigoValor
                }).Result.FirstOrDefault();

                foreach (var item in parametroValorActual.RegistroCadena)
                {
                    ParametroValorLogic logic = new ParametroValorLogic();
                    logic.CodigoParametro = parametroValorActual.CodigoParametro;
                    logic.CodigoSeccion   = Convert.ToInt32(item.Key);
                    logic.CodigoValor     = parametroValorActual.CodigoValor;
                    logic.Valor           = null;
                    logic.EstadoRegistro  = DatosConstantes.EstadoRegistro.Inactivo;

                    if (parametroValorLogicRepository.ModificarParametroValor(logic) <= 0)
                    {
                        throw new Exception();
                    }
                }

                resultadoProceso.Result    = "1";
                resultadoProceso.IsSuccess = true;
            }
            catch (Exception)
            {
                result = "-1";
                resultadoProceso.Result    = result;
                resultadoProceso.IsSuccess = false;
            }
            return(resultadoProceso);
        }
Пример #3
0
        /// <summary>
        /// Realiza la busqueda de Parametro Valor
        /// </summary>
        /// <param name="filtro">Filtro de Parametro Valor</param>
        /// <returns>Listado de parametro valor dinamico</returns>
        public ProcessResult <List <dynamic> > BuscarParametroValorDinamico(ParametroValorRequest filtro)
        {
            #region Antiguo
            //var parametroValor = this.BuscarParametroValor(filtro);
            //var listaDinamica = new List<dynamic>();
            //parametroValor.Result.ForEach(p =>
            //{
            //    var expandoObject = new ExpandoObject();
            //    var expandoDictionary = (IDictionary<string, object>)expandoObject;

            //    if (p.RegistroObjeto != null)
            //    {
            //        foreach (var campo in p.RegistroObjeto)
            //        {
            //            expandoDictionary.Add("Atributo" + campo.Key, campo.Value);
            //        }
            //        listaDinamica.Add((dynamic)expandoObject);
            //    }
            //});
            #endregion
            #region Mejorado
            var       listaDinamica = new List <dynamic>();
            DataTable listado       = parametroValorLogicRepository.BuscarParametroValorMejorado(
                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);

            foreach (DataRow row in listado.Rows)
            {
                int key               = 1;
                var expandoObject     = new ExpandoObject();
                var expandoDictionary = (IDictionary <string, object>)expandoObject;
                foreach (DataColumn column in listado.Columns)
                {
                    expandoDictionary.Add("Atributo" + key.ToString(), row[column]);
                    key += 1;
                }
                listaDinamica.Add((dynamic)expandoObject);
            }
            #endregion
            var resultado = new ProcessResult <List <dynamic> >();
            resultado.Result = listaDinamica;
            return(resultado);
        }
Пример #4
0
        /// <summary>
        /// Realiza el registro de un de Parametro Valor
        /// </summary>
        /// <param name="filtro">Parametro Valor a Registrar</param>
        /// <returns>Indicador de Error</returns>
        public ProcessResult <string> RegistrarParametroValor(ParametroValorRequest filtro)
        {
            string result           = "0";
            var    resultadoProceso = new ProcessResult <string>();

            try
            {
                var listSecciones = parametroSeccionService.BuscarParametroSeccion(new ParametroSeccionRequest()
                {
                    CodigoParametro = filtro.CodigoParametro
                }).Result;

                int  codigoValor     = 0;
                bool isActualizacion = false;

                if (filtro.CodigoValor == null)
                {
                    var ultimoParametroValor = BuscarParametroValor(new ParametroValorRequest()
                    {
                        CodigoParametro = filtro.CodigoParametro,
                        EstadoRegistro  = null
                    }).Result.OrderBy(itemOrderBy => itemOrderBy.CodigoValor).LastOrDefault();

                    if (ultimoParametroValor != null)
                    {
                        codigoValor = ultimoParametroValor.CodigoValor + 1;
                    }
                    else
                    {
                        codigoValor = 1;
                    }
                }
                else
                {
                    codigoValor     = (int)filtro.CodigoValor;
                    isActualizacion = true;
                }

                using (TransactionScope scope = new TransactionScope())
                {
                    try
                    {
                        foreach (var item in filtro.RegistroCadena)
                        {
                            bool isSeccionExistente = false;

                            var seccionActual = listSecciones.Where(itemWhere => itemWhere.CodigoSeccion.ToString() == item.Key).FirstOrDefault();

                            ParametroValorResponse parametroValorActual = null;

                            if (isActualizacion)
                            {
                                parametroValorActual = BuscarParametroValor(new ParametroValorRequest()
                                {
                                    CodigoParametro = filtro.CodigoParametro,
                                    CodigoSeccion   = seccionActual.CodigoSeccion,
                                    CodigoValor     = codigoValor
                                }).Result.FirstOrDefault();

                                isSeccionExistente = (parametroValorActual != null) ? true : false;
                            }

                            string value = "";

                            switch (seccionActual.CodigoTipoDato)
                            {
                            case "ENT":
                                value = item.Value;
                                break;

                            case "DEC":
                                value = item.Value.Replace(',', '.');
                                break;

                            case "FEC":
                                value = item.Value;
                                break;

                            default:
                                value = item.Value;
                                break;
                            }

                            ParametroValorLogic logic = new ParametroValorLogic();
                            logic.CodigoParametro = (int)filtro.CodigoParametro;
                            logic.CodigoSeccion   = seccionActual.CodigoSeccion;
                            logic.CodigoValor     = codigoValor;
                            logic.Valor           = value;

                            if (!isActualizacion || !isSeccionExistente)
                            {
                                logic.EstadoRegistro = DatosConstantes.EstadoRegistro.Activo;

                                if (parametroValorLogicRepository.RegistrarParametroValor(logic) <= 0)
                                {
                                    throw new Exception();
                                }
                            }
                            else
                            {
                                logic.EstadoRegistro = null;

                                if (parametroValorLogicRepository.ModificarParametroValor(logic) <= 0)
                                {
                                    throw new Exception();
                                }
                            }
                        }

                        scope.Complete();

                        resultadoProceso.Result    = "1";
                        resultadoProceso.IsSuccess = true;
                    }
                    catch (Exception e)
                    {
                        scope.Dispose();
                        throw e;
                    }
                }
            }
            catch (Exception)
            {
                result = "-1";
                resultadoProceso.Result    = result;
                resultadoProceso.IsSuccess = false;
            }
            return(resultadoProceso);
        }
Пример #5
0
        /* JCP: 16/01/2018
         * Metodo Original para carga de parametros se reemplazo la logica
         * por BuscarParametroValor_Optimizado que hace la carga de parametros
         * en memoria para luego utilizarlas
         * /// <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];
         *          parametroValor.Valor = itemValue.Valor;
         *          parametroValor.CodigoSeccion = itemValue.CodigoSeccion;
         *
         *          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
            {
                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>();

                int?codigoParametro = null;

                if (listado.Count > 0)
                {
                    codigoParametro = listado.FirstOrDefault().CodigoParametro;
                }

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


                List <ParametroValorLogic> listaparametroValorRelacionado = new List <ParametroValorLogic>();
                List <int> listaParametrosCargados = new List <int>();

                foreach (ParametroSeccionResponse seccionActual in listSecciones)
                {
                    //para ver si tiene parametro relacionado
                    //tambien vemos que no lo tengamos cargado
                    if (seccionActual.CodigoParametroRelacionado != null &&
                        !listaParametrosCargados.Contains(seccionActual.CodigoParametroRelacionado.Value))
                    {
                        var parametroValorRelacionado = parametroValorLogicRepository.BuscarParametroValor(seccionActual.CodigoParametroRelacionado, null, null, null, null, null, null, null, null, DatosConstantes.EstadoRegistro.Activo);

                        listaparametroValorRelacionado.AddRange(parametroValorRelacionado);
                    }
                }


                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 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 codigoValorRelacionado = listaparametroValorRelacionado.Where(itemWhere => itemWhere.CodigoSeccion == seccionActual.CodigoSeccionRelacionado && itemWhere.Valor == valorTexto).Select(itemSelect => itemSelect.CodigoValor).FirstOrDefault();

                            var    valorRelacionado       = listaparametroValorRelacionado.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>
        /// Permite registrar o actualizar un parametro
        /// </summary>
        /// <param name="parametroValor">Valor de Parámetro</param>
        /// <returns>Indicador de Conformidad</returns>
        public JsonResult GuardarParametro(ParametroValorRequest parametroValor)
        {
            var result = parametroValorService.RegistrarParametroValor(parametroValor);

            return(Json(result));
        }
Пример #7
0
        /// <summary>
        /// Permite registrar o actualizar un parametro
        /// </summary>
        /// <param name="parametroValor">Valor de Parámetro</param>
        /// <returns>Indicador de Conformidad</returns>
        public JsonResult GuardarParametro(ParametroValorRequest parametroValor)
        {
            ProcessResult <string> result = new ProcessResult <string>();
            bool validar = false;

            if (parametroValor.Accion != "E")
            {
                #region validar si existe

                var listaParametroValor = parametroValorService.BuscarParametroValor(new ParametroValorRequest()
                {
                    CodigoParametro = parametroValor.CodigoParametro
                });

                listaParametroValor.Result.ForEach(item => item.RegistroObjeto = null);

                //Esta validación es aplicable para Tipo de Servicio.
                if (parametroValor.RegistroCadena.Count == 4)
                {
                    string codigo = parametroValor.RegistroCadena.First(x => x.Key == "1").Value;
                    string tipo   = parametroValor.RegistroCadena.First(x => x.Key == "3").Value;
                    string abrev  = parametroValor.RegistroCadena.First(x => x.Key == "4").Value;

                    foreach (var item in listaParametroValor.Result)
                    {
                        if (item.RegistroCadena.ToList().Any(x => x.Key == "1" && x.Value == codigo) && (item.RegistroCadena.ToList().Any(x => x.Key == "3" && x.Value == tipo)) &&
                            item.RegistroCadena.ToList().Any(x => x.Key == "4" && x.Value == abrev))
                        {
                            validar = true;
                            break;
                        }
                    }
                }
                else //Esto aplica para el resto de opción donde no se busca validar las demás columnas de datos
                {
                    string codigo = parametroValor.RegistroCadena.First(x => x.Key == "1").Value;

                    foreach (var item in listaParametroValor.Result)
                    {
                        if (item.RegistroCadena.ToList().Any(x => x.Key == "1" && x.Value == codigo))
                        {
                            validar = true;
                            break;
                        }
                    }
                }

                #endregion
            }

            if (validar == false)
            {
                result = parametroValorService.RegistrarParametroValor(parametroValor);
            }
            else
            {
                result.Result = "Existe";
            }

            return(Json(result));
        }
Пример #8
0
        /// <summary>
        /// Realiza la búsqueda de Valores de las Secciones Adicionales de Parámetro 5 parametros de retorno
        /// </summary>
        /// <param name="filtro">Filtro de búsqueda</param>
        /// <returns>Lista de Valores de las Secciones Adicionales de Parámetro</returns>
        public ProcessResult <List <ParametroValorResponse> > BuscarValorSeccionAdicionalRetornaCincoParametros(ParametroValorRequest filtro)
        {
            ProcessResult <List <ParametroValorResponse> > resultadoProceso = new ProcessResult <List <ParametroValorResponse> >();

            try
            {
                List <ParametroValorLogic> listaValorPorSeccionParametro = parametroValorLogicRepository.BuscarValorSeccionAdicionalParametro(
                    new Guid(filtro.CodigoEmpresa),
                    filtro.IndicadorEmpresa.Value,
                    new Guid(filtro.CodigoSistema),
                    filtro.CodigoIdentificador,
                    filtro.CodigoIdioma);

                resultadoProceso.Result = new List <ParametroValorResponse>();

                foreach (ParametroValorLogic parametroValorLogic in listaValorPorSeccionParametro)
                {
                    ParametroValorResponse parametroValorResponse = ParametroValorAdapter.ObtenerValorPorSeccionParametro(parametroValorLogic);
                    resultadoProceso.Result.Add(parametroValorResponse);
                }
            }
            catch (Exception)
            {
                resultadoProceso.IsSuccess = false;
            }

            return(resultadoProceso);
        }
Пример #9
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);
        }