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

                PlantillaRequerimientoParrafoEntity entidad = PlantillaRequerimientoParrafoAdapter.RegistrarPlantillaParrafo(data);

                var resultadoPorOrdenDescripcion = plantillaRequerimientoLogicRepository.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 <PlantillaRequerimientoService>(mensaje);
                }
                else
                {
                    if (string.IsNullOrWhiteSpace(data.CodigoPlantillaParrafo))
                    {
                        plantillaRequerimientoParrafoEntityRepository.Insertar(entidad);

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

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

                            plantillaRequerimientoParrafoVariableEntityRepository.Insertar(entidadPlantillaParrafoVariable);

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

                        plantillaRequerimientoParrafoEntityRepository.Editar(entidadSincronizar);

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

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

                        foreach (var item in listaEliminados)
                        {
                            var llaveEntidad = item.CodigoPlantillaParrafoVariable;
                            plantillaRequerimientoParrafoVariableEntityRepository.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)
                            {
                                PlantillaRequerimientoParrafoVariableRequest dataVariable = new PlantillaRequerimientoParrafoVariableRequest();
                                dataVariable.CodigoPlantillaParrafo = entidadSincronizar.CodigoPlantillaParrafo.ToString();
                                dataVariable.CodigoVariable         = contenido.Key;
                                dataVariable.Orden = Convert.ToInt16(orden);
                                PlantillaRequerimientoParrafoVariableEntity entidadPlantillaParrafoVariable = PlantillaRequerimientoParrafoVariableAdapter.RegistrarPlantillaParrafoVariable(dataVariable);

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

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

                    plantillaRequerimientoParrafoEntityRepository.GuardarCambios();
                    plantillaRequerimientoParrafoVariableEntityRepository.GuardarCambios();
                    resultado.Result = data;
                }
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <PlantillaRequerimientoService>(e);
            }

            return(resultado);
        }
        /// <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 <PlantillaRequerimientoParrafoVariableResponse> > BuscarPlantillaParrafoVariableCodigoPlantillaParrafo(PlantillaRequerimientoParrafoVariableRequest filtro)
        {
            ProcessResult <List <PlantillaRequerimientoParrafoVariableResponse> > resultado = new ProcessResult <List <PlantillaRequerimientoParrafoVariableResponse> >();

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

                resultado.Result = new List <PlantillaRequerimientoParrafoVariableResponse>();
                foreach (var registro in listado)
                {
                    var plantillaParrafoVariable = PlantillaRequerimientoParrafoVariableAdapter.ObtenerPlantillaParrafoVariable(registro);
                    resultado.Result.Add(plantillaParrafoVariable);
                }
            }
            catch (Exception e)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <PlantillaService>(e);
            }
            return(resultado);
        }
Exemple #3
0
        /// <summary>
        /// Realiza la adaptación de campos para registrar o actualizar
        /// </summary>
        /// <param name="data">Datos a registrar o actualizar</param>
        /// <returns>Entidad Plantilla Párrafo Variable con los datos a registrar</returns>
        public static PlantillaRequerimientoParrafoVariableEntity RegistrarPlantillaParrafoVariable(PlantillaRequerimientoParrafoVariableRequest data)
        {
            var plantillaParrafoVariableEntity = new PlantillaRequerimientoParrafoVariableEntity();

            if (data.CodigoPlantillaParrafoVariable != null)
            {
                plantillaParrafoVariableEntity.CodigoPlantillaParrafoVariable = new Guid(data.CodigoPlantillaParrafoVariable);
            }
            else
            {
                Guid code;
                code = Guid.NewGuid();
                plantillaParrafoVariableEntity.CodigoPlantillaParrafoVariable = code;
            }


            plantillaParrafoVariableEntity.CodigoPlantillaParrafo = new Guid(data.CodigoPlantillaParrafo);
            plantillaParrafoVariableEntity.CodigoVariable         = new Guid(data.CodigoVariable);
            plantillaParrafoVariableEntity.Orden = Convert.ToInt16(data.Orden);

            return(plantillaParrafoVariableEntity);
        }