/// <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); }
/// <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] { " ", "<", ".", ",", "-", "/", "\\", ")", "(", " " }; 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); }