Beispiel #1
0
        /// <summary>
        /// Realiza la búsqueda de plantilla párrafo variable
        /// </summary>
        /// <param name="filtro">Filtro de búsqueda</param>
        /// <returns>Listado de plantilla párrafo variable</returns>
        public ProcessResult <List <PlantillaParrafoVariableResponse> > BuscarPlantillaParrafoVariableCodigoPlantillaParrafo(PlantillaParrafoVariableRequest filtro)
        {
            ProcessResult <List <PlantillaParrafoVariableResponse> > resultado = new ProcessResult <List <PlantillaParrafoVariableResponse> >();

            try
            {
                if (string.IsNullOrEmpty(filtro.CodigoPlantillaParrafo))
                {
                    filtro.CodigoPlantillaParrafo = Guid.Empty.ToString();
                }
                List <PlantillaParrafoVariableLogic> listado = plantillaLogicRepository.BuscarPlantillaParrafoVariableCodigoPlantillaParrafo(new Guid(filtro.CodigoPlantillaParrafo));

                resultado.Result = new List <PlantillaParrafoVariableResponse>();
                foreach (var registro in listado)
                {
                    var plantillaParrafoVariable = PlantillaParrafoVariableAdapter.ObtenerPlantillaParrafoVariable(registro);
                    resultado.Result.Add(plantillaParrafoVariable);
                }
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <PlantillaService>(e);
            }
            return(resultado);
        }
Beispiel #2
0
        /// <summary>
        /// Registra o actualiza un párrafo
        /// </summary>
        /// <param name="data">Datos a registrar</param>
        /// <returns>Indicador con el resultado de la operación</returns>
        public ProcessResult <object> RegistrarPlantillaParrafo(PlantillaParrafoRequest data)
        {
            ProcessResult <object>      resultado      = new ProcessResult <object>();
            Dictionary <string, string> contenidoArray = new Dictionary <string, string>();

            try
            {
                var contenidoTemporal           = " " + data.Contenido;
                var identificadorInicioVariable = "##";

                var listaSeparat = contenidoTemporal.Split(new string[1] {
                    identificadorInicioVariable
                }, StringSplitOptions.None);

                if (listaSeparat.Count() > 1)
                {
                    var listadoVariable          = variableLogicRepository.BuscarVariableGlobal(new Guid(data.CodigoPlantilla));
                    var identificadorFinVariable = new string[10] {
                        " ", "<", ".", ",", "-", "/", "\\", ")", "(", "&nbsp"
                    };
                    for (int i = 1; i < listaSeparat.Count(); i++)
                    {
                        var lista = listaSeparat[i].Split(identificadorFinVariable, StringSplitOptions.None);
                        var identificadorVariable = identificadorInicioVariable + lista.FirstOrDefault().Trim().ToUpper().ToString();

                        if (listadoVariable.Any(x => x.Identificador.ToUpper() == identificadorVariable))
                        {
                            Guid codigoVariable = listadoVariable.Where(x => x.Identificador.ToUpper() == identificadorVariable).FirstOrDefault().CodigoVariable;
                            contenidoArray.SetValue(codigoVariable.ToString(), identificadorInicioVariable + lista.FirstOrDefault().Trim());
                        }
                    }
                }

                PlantillaParrafoEntity entidad = PlantillaParrafoAdapter.RegistrarPlantillaParrafo(data);

                var resultadoPorOrdenDescripcion = plantillaLogicRepository.BuscarPlantillaParrafoOrdenTitulo(new Guid(data.CodigoPlantilla), Convert.ToByte(data.Orden), data.Titulo);

                bool existeRepetido = resultadoPorOrdenDescripcion.Any(e => e.CodigoPlantillaParrafo != entidad.CodigoPlantillaParrafo);

                if (existeRepetido)
                {
                    string mensaje = "";
                    resultado.IsSuccess = false;

                    if (resultadoPorOrdenDescripcion.Where(x => x.Orden.ToString() == data.Orden.ToString() && x.Titulo == data.Titulo).Count() == 1)
                    {
                        mensaje = MensajesSistema.PlantillaParrafoExiste;
                    }
                    else if (resultadoPorOrdenDescripcion.Where(x => x.Orden.ToString() == data.Orden.ToString()).Count() == 1)
                    {
                        mensaje = MensajesSistema.PlantillaParrafoOrdenExiste;
                    }
                    else
                    {
                        mensaje = MensajesSistema.PlantillaParrafoTituloExiste;
                    }

                    resultado.Exception = new ApplicationLayerException <PlantillaService>(mensaje);
                }
                else
                {
                    if (string.IsNullOrWhiteSpace(data.CodigoPlantillaParrafo))
                    {
                        plantillaParrafoEntityRepository.Insertar(entidad);

                        PlantillaParrafoVariableRequest dataVariable = new PlantillaParrafoVariableRequest();
                        dataVariable.CodigoPlantillaParrafo = entidad.CodigoPlantillaParrafo.ToString();

                        int ordenAscendente = 1;
                        foreach (var item in contenidoArray)
                        {
                            dataVariable.CodigoVariable = item.Key.ToString();
                            dataVariable.Orden          = Convert.ToInt16(ordenAscendente);
                            PlantillaParrafoVariableEntity entidadPlantillaParrafoVariable = PlantillaParrafoVariableAdapter.RegistrarPlantillaParrafoVariable(dataVariable);

                            plantillaParrafoVariableEntityRepository.Insertar(entidadPlantillaParrafoVariable);

                            ordenAscendente++;
                        }
                    }
                    else
                    {
                        //Editar Plantilla Párrafo
                        var entidadSincronizar = plantillaParrafoEntityRepository.GetById(entidad.CodigoPlantillaParrafo);
                        entidadSincronizar.CodigoPlantilla = entidad.CodigoPlantilla;
                        entidadSincronizar.Orden           = entidad.Orden;
                        entidadSincronizar.Titulo          = entidad.Titulo;
                        entidadSincronizar.Contenido       = entidad.Contenido;

                        plantillaParrafoEntityRepository.Editar(entidadSincronizar);

                        //Editar Plantilla Párrafo Variable
                        var listaVariablesAnteriores = plantillaLogicRepository.BuscarPlantillaParrafoVariableCodigoPlantillaParrafo(entidad.CodigoPlantillaParrafo);

                        var listaEliminados = listaVariablesAnteriores.Where(v => !contenidoArray.Keys.Contains(v.CodigoVariable.ToString()));

                        foreach (var item in listaEliminados)
                        {
                            var llaveEntidad = item.CodigoPlantillaParrafoVariable;
                            plantillaParrafoVariableEntityRepository.Eliminar(llaveEntidad);
                        }

                        int orden = 1;
                        foreach (var contenido in contenidoArray)
                        {
                            var plantillaParrafoVariable = listaVariablesAnteriores.Where(item => item.CodigoVariable == new Guid(contenido.Key)).FirstOrDefault();
                            if (plantillaParrafoVariable == null)
                            {
                                PlantillaParrafoVariableRequest dataVariable = new PlantillaParrafoVariableRequest();
                                dataVariable.CodigoPlantillaParrafo = entidadSincronizar.CodigoPlantillaParrafo.ToString();
                                dataVariable.CodigoVariable         = contenido.Key;
                                dataVariable.Orden = Convert.ToInt16(orden);
                                PlantillaParrafoVariableEntity entidadPlantillaParrafoVariable = PlantillaParrafoVariableAdapter.RegistrarPlantillaParrafoVariable(dataVariable);

                                plantillaParrafoVariableEntityRepository.Insertar(entidadPlantillaParrafoVariable);
                            }
                            else
                            {
                                var entidadSincronizarVariable = plantillaParrafoVariableEntityRepository.GetById(plantillaParrafoVariable.CodigoPlantillaParrafoVariable);
                                entidadSincronizarVariable.Orden = Convert.ToInt16(orden);

                                plantillaParrafoVariableEntityRepository.Editar(entidadSincronizarVariable);
                            }
                            orden++;
                        }
                    }

                    plantillaParrafoEntityRepository.GuardarCambios();
                    plantillaParrafoVariableEntityRepository.GuardarCambios();
                    resultado.Result = data;
                }
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <PlantillaService>(e);
            }

            return(resultado);
        }