/// <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 con los datos a registrar</returns> public static PlantillaRequerimientoParrafoEntity RegistrarPlantillaParrafo(PlantillaRequerimientoParrafoRequest data) { var plantillaParrafoEntity = new PlantillaRequerimientoParrafoEntity(); if (data.CodigoPlantillaParrafo != null) { plantillaParrafoEntity.CodigoPlantillaParrafo = new Guid(data.CodigoPlantillaParrafo); } else { Guid code; code = Guid.NewGuid(); plantillaParrafoEntity.CodigoPlantillaParrafo = code; } plantillaParrafoEntity.CodigoPlantilla = new Guid(data.CodigoPlantilla); plantillaParrafoEntity.Orden = Convert.ToByte(data.Orden); plantillaParrafoEntity.Titulo = data.Titulo; //Mejorar visibilidad de etiqueta sup if (data.Contenido.Contains("<sup>")) { data.Contenido = data.Contenido.Replace("<sup>", "<span style='font-size: 6px; vertical-align:super;'>"); data.Contenido = data.Contenido.Replace("</sup>", "</span>"); } plantillaParrafoEntity.Contenido = data.Contenido; return(plantillaParrafoEntity); }
/// <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] { " ", "<", ".", ",", "-", "/", "\\", ")", "(", " " }; 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); }