示例#1
0
        /// <summary>
        /// Realiza la adaptación de campos
        /// </summary>
        /// <param name="parametroValorLogic">Clase Logic de Parámetro Valor</param>
        /// <returns>Clase Response con los campos de búsqueda</returns>
        public static ParametroValorResponse ObtenerValorPorSeccionParametro(ParametroValorLogic parametroValorLogic)
        {
            ParametroValorResponse parametroValorResponse = new ParametroValorResponse();

            parametroValorResponse.CodigoValorString     = parametroValorLogic.CodigoValorString;
            parametroValorResponse.Valor                 = parametroValorLogic.Valor;
            parametroValorResponse.CodigoIdioma          = parametroValorLogic.CodigoIdioma;
            parametroValorResponse.PrimerValorAdicional  = parametroValorLogic.PrimerValorAdicional;
            parametroValorResponse.SegundoValorAdicional = parametroValorLogic.SegundoValorAdicional;

            return(parametroValorResponse);
        }
        /// <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);
        }
        /// <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);
        }