protected override void DespuesDePersistir(MenuDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); var gestor = GestorDeArbolDeMenu.Gestor(Mapeador); gestor.LimpiarCacheDeArbolDeMenu(); }
private int SubirArchivoInterno(string rutaConFichero) { var servidorDeArchivos = GestorDeVariables.LeerVariable(Contexto, Variable.CFG_Servidor_Archivos, true); if (!Directory.Exists(servidorDeArchivos.Valor)) { throw new Exception($"La ruta del servidor documental {servidorDeArchivos.Valor} asignada a la variable {Variable.CFG_Servidor_Archivos} no está definida"); } var fecha = DateTime.Now; var almacenarEn = $@"{servidorDeArchivos.Valor}\{fecha.Year}\{fecha.Month}\{fecha.Day}\{fecha.Hour}\{Contexto.DatosDeConexion.IdUsuario}"; Directory.CreateDirectory(almacenarEn); var fichero = Path.GetFileName(rutaConFichero); var archivo = new ArchivoDtm { Nombre = fichero, AlmacenadoEn = almacenarEn }; var parametros = new ParametrosDeNegocio(enumTipoOperacion.Insertar); var tran = Contexto.IniciarTransaccion(); try { PersistirRegistro(archivo, parametros); File.Move(rutaConFichero, $@"{archivo.AlmacenadoEn}\{archivo.Id}.se", true); Contexto.Commit(tran); } catch (Exception) { Contexto.Rollback(tran); throw; } return(archivo.Id); }
//Todo: --> Reglas de negocio protected override void AntesDePersistir(ProvinciaDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar) { //validar que si la provincia está relacionada con códigos postales, los dos primeros dígitos del código son igual que el código de la provincia var a = Contexto.Set <CpsDeUnaProvinciaDtm>().FirstOrDefault(x => x.IdProvincia == registro.Id && x.CodigoPostal.Codigo.Substring(0, 2) != registro.Codigo); if (a != null) { var codigoPostal = Contexto.Set <CodigoPostalDtm>().LeerCacheadoPorId(a.IdCp).Codigo; GestorDeErrores.Emitir($"No se puede modificar la provincia ya que el código de la provincia es {registro.Codigo} y está relacionada con el código postal {codigoPostal}"); } } if (parametros.Operacion == enumTipoOperacion.Eliminar) { //Validar que no hay municipios con la provincia var municipio = Contexto.Set <MunicipioDtm>().FirstOrDefault(x => x.IdProvincia == registro.Id); if (municipio != null) { GestorDeErrores.Emitir($"No se puede eliminar la provincia por estar relacionada con el municipio {municipio.Expresion}"); } //Elimina las relaciones del los cp con la provincia a borrar var a = Contexto.Set <CpsDeUnaProvinciaDtm>().Where(x => x.IdProvincia == registro.Id); GestorDeCpsDeUnaProvincia.Gestor(Contexto, Contexto.Mapeador).BorrarRegistros(a); } }
public static MunicipioDtm LeerMunicipioPorCodigo(ContextoSe contexto, string iso2Pais, string codigoProvincia, string codigoMunicipio, bool paraActualizar, bool errorSiNoHay = true, bool errorSiMasDeUno = true) { var gestor = Gestor(contexto, contexto.Mapeador); var filtros = new List <ClausulaDeFiltrado>(); var filtro1 = new ClausulaDeFiltrado(nameof(iso2Pais), CriteriosDeFiltrado.igual, iso2Pais); var filtro2 = new ClausulaDeFiltrado(nameof(codigoProvincia), CriteriosDeFiltrado.igual, codigoProvincia); var filtro3 = new ClausulaDeFiltrado(nameof(codigoMunicipio), CriteriosDeFiltrado.igual, codigoMunicipio); filtros.Add(filtro1); filtros.Add(filtro2); filtros.Add(filtro3); var p = new ParametrosDeNegocio(paraActualizar ? enumTipoOperacion.LeerConBloqueo : enumTipoOperacion.LeerSinBloqueo); p.Parametros.Add(ltrJoinAudt.IncluirUsuarioDtm, false); List <MunicipioDtm> municipios = gestor.LeerRegistros(0, -1, filtros, null, null, p); if (municipios.Count == 0 && errorSiNoHay) { GestorDeErrores.Emitir($"No se ha localizado el municipio con Iso2 del pais {iso2Pais}, codigo de provincia {codigoProvincia} y código municipio {codigoMunicipio}"); } if (municipios.Count > 1 && errorSiMasDeUno) { GestorDeErrores.Emitir($"Se han localizado más de un registro con Iso2 del pais {iso2Pais}, codigo de provincia {codigoProvincia} y código municipio {codigoMunicipio}"); } return(municipios.Count == 1 ? municipios[0] : null); }
protected override void AntesDePersistir(TrabajoDeUsuarioDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Insertar) { registro.Encolado = DateTime.Now; } if (parametros.Operacion == enumTipoOperacion.Insertar || parametros.Operacion == enumTipoOperacion.Modificar) { if (!registro.Iniciado.HasValue) { ParametrosJson.ValidarJson(registro.Parametros); if (registro.Planificado.Millisecond > 0 || registro.Planificado.Second > 0) { registro.Planificado = registro.Planificado.AddMilliseconds(1000 - registro.Planificado.Millisecond); registro.Planificado = registro.Planificado.AddSeconds(60 - registro.Planificado.Second); registro.Planificado.AddMinutes(1); } } } if (parametros.Operacion == enumTipoOperacion.Eliminar) { GestorDeTrazasDeUnTrabajo.EliminarTrazas(Contexto, ((TrabajoDeUsuarioDtm)parametros.registroEnBd).Id); GestorDeErroresDeUnTrabajo.EliminarErrores(Contexto, ((TrabajoDeUsuarioDtm)parametros.registroEnBd).Id); } }
protected override void DespuesDePersistir(NegocioDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar || parametros.Operacion == enumTipoOperacion.Eliminar) { var cache = $"{nameof(GestorDeElementos)}.{nameof(LeerModoDeAccesoAlNegocio)}"; var patron = $"Negocio:registro.Nombre"; ServicioDeCaches.EliminarElementos(cache, patron); cache = $"{nameof(NegociosDeSe)}.{nameof(NegociosDeSe.LeerNegocioPorEnumerado)}"; var indice = $"{nameof(enumNegocio)}-{registro.Enumerado}"; ServicioDeCaches.EliminarElemento(cache, indice); cache = $"{nameof(NegociosDeSe)}.{nameof(NegociosDeSe.LeerNegocioPorNombre)}"; indice = $"{nameof(INombre)}-{registro.Nombre}"; ServicioDeCaches.EliminarElemento(cache, indice); cache = $"{nameof(NegociosDeSe)}.{nameof(NegociosDeSe.LeerNegocioPorDto)}"; indice = $"{nameof(NegociosDeSe.Dto)}-{registro.ElementoDto}"; ServicioDeCaches.EliminarElemento(cache, indice); cache = $"{nameof(NegociosDeSe)}.{nameof(NegociosDeSe.LeerNegocioPorDtm)}"; indice = $"{nameof(NegociosDeSe.Dtm)}-{registro.ElementoDtm}"; ServicioDeCaches.EliminarElemento(cache, indice); } }
private void ValidarAntesDeModificar(TrabajoDeUsuarioDtm registro, ParametrosDeNegocio parametros) { var RegistroEnBD = ((TrabajoDeUsuarioDtm)parametros.registroEnBd); if (RegistroEnBD.IdSometedor != registro.IdSometedor) { GestorDeErrores.Emitir("No se puede modificar el sometedor de un trabajo"); } if (RegistroEnBD.Encolado != registro.Encolado) { GestorDeErrores.Emitir("No se puede modificar la fecha de entrada de un trabajo en la cola"); } if (!registro.Iniciado.HasValue && registro.Terminado.HasValue) { GestorDeErrores.Emitir("No se se puede terminar un trabajo que aun no se ha iniciado"); } if (registro.Terminado.HasValue && !SeEstaTerminando(parametros.Parametros)) { GestorDeErrores.Emitir("No se se puede modificar un trabajo terminado"); } if (RegistroEnBD.Iniciado.HasValue && !SeEstaTerminando(parametros.Parametros)) { GestorDeErrores.Emitir("Un trabajo en ejecución no se puede modificar"); } }
protected override void AntesDePersistirValidarRegistro(NegocioDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistirValidarRegistro(registro, parametros); if (registro.ElementoDtm.IsNullOrEmpty()) { GestorDeErrores.Emitir($"Ha de indicar la clase del objeto {registro.Nombre} es obligatorio"); } var encontrado = false; var ensamblado = Assembly.Load(nameof(ServicioDeDatos)); foreach (var clase in ensamblado.DefinedTypes) { if (clase.FullName == registro.ElementoDtm) { encontrado = true; break; } } if (!encontrado) { GestorDeErrores.Emitir($"La clase del elemento {registro.ElementoDtm} del negocio {registro.Nombre} debe existir"); } }
//Todo: --> Reglas de negocio protected override void DespuesDePersistir(CalleDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar || parametros.Operacion == enumTipoOperacion.Insertar) { } }
internal static ProvinciaDtm LeerProvinciaPorCodigo(ContextoSe contexto, string iso2Pais, string codigoProvincia, bool paraActualizar, bool errorSiNoHay = true, bool errorSiMasDeUno = true) { var gestor = Gestor(contexto, contexto.Mapeador); var filtros = new List <ClausulaDeFiltrado>(); var filtro1 = new ClausulaDeFiltrado(nameof(ProvinciaDtm.Pais.ISO2), CriteriosDeFiltrado.igual, iso2Pais); var filtro2 = new ClausulaDeFiltrado(nameof(ProvinciaDtm.Codigo), CriteriosDeFiltrado.igual, codigoProvincia); filtros.Add(filtro1); filtros.Add(filtro2); var p = new ParametrosDeNegocio(paraActualizar ? enumTipoOperacion.LeerConBloqueo : enumTipoOperacion.LeerSinBloqueo); p.Parametros.Add(ltrJoinAudt.IncluirUsuarioDtm, false); List <ProvinciaDtm> provincias = gestor.LeerRegistros(0, -1, filtros, null, null, p); if (provincias.Count == 0 && errorSiNoHay) { GestorDeErrores.Emitir($"No se ha localizado la provincia para el código del pais {iso2Pais} y codigo de provincia {codigoProvincia}"); } if (provincias.Count > 1 && errorSiMasDeUno) { GestorDeErrores.Emitir($"Se han localizado más de un registro de provincia con el código del pais {iso2Pais} y codigo de provincia {codigoProvincia}"); } return(provincias.Count == 1 ? provincias[0] : null); }
private static TipoDeViaDtm ProcesarTipoDeViaLeido(EntornoDeTrabajo entorno, GestorDeTiposDeVia gestor, string sigla, string nombre, TrazaDeUnTrabajoDtm trazaInfDtm) { ParametrosDeNegocio operacion; var p = gestor.LeerRegistro(nameof(TipoDeViaDtm.Sigla), sigla, errorSiNoHay: false, errorSiHayMasDeUno: true, traqueado: true, conBloqueo: false, false); //var p = LeerTipoDeViaPorSigla(entorno.contextoDelProceso, sigla, paraActualizar: true); if (p == null) { p = new TipoDeViaDtm(); p.Sigla = sigla; p.Nombre = nombre; operacion = new ParametrosDeNegocio(enumTipoOperacion.Insertar); entorno.ActualizarTraza(trazaInfDtm, $"Creando el tipo de vía {sigla}"); } else { if (p.Nombre != nombre) { p.Nombre = nombre; operacion = new ParametrosDeNegocio(enumTipoOperacion.Modificar); entorno.ActualizarTraza(trazaInfDtm, $"Modificando el tipo de vía {sigla}"); entorno.CrearTraza($"Existe un tipo de vía con la sigla {p.Sigla}, el nombre es {p.Nombre}, vaya al mantenimiento si quiere cambiar el nombre por {nombre}"); } else { entorno.ActualizarTraza(trazaInfDtm, $"El tipo de vía {sigla} ya existe"); return(p); } } return(gestor.PersistirRegistro(p, operacion)); }
protected override void DespuesDePersistir(ParametroDeNegocioDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar || parametros.Operacion == enumTipoOperacion.Eliminar) { ServicioDeCaches.EliminarElemento(typeof(ParametroDeNegocioDtm).FullName, $"{registro.IdNegocio}-{nameof(ParametroDeNegocioDtm.Nombre)}-{registro.Nombre}"); } }
//Todo: --> Reglas de negocio protected override void DespuesDePersistir(MunicipioDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar || parametros.Operacion == enumTipoOperacion.Insertar) { //Si la provincia del municipio no está relacionada con el cp, relacionarla } }
protected override void DespuesDePersistir(VariableDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar || parametros.Operacion == enumTipoOperacion.Eliminar) { CacheDeVariable.BorrarCache(registro.Nombre); } }
protected override void AntesDePersistir(CorreoDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Insertar) { registro.Creado = DateTime.Now; } }
protected override void DespuesDePersistir(UsuarioDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); if (parametros.Operacion != enumTipoOperacion.Insertar) { ServicioDeCaches.EliminarElemento(cache: typeof(UsuarioDtm).FullName, clave: $"{nameof(UsuarioDtm.Login)}-{registro.Login}-0"); ServicioDeCaches.EliminarElemento(cache: typeof(UsuarioDtm).FullName, clave: $"{nameof(UsuarioDtm.Login)}-{registro.Login}-1"); } }
private void ValidarAntesDeEliminar(TrabajoDeUsuarioDtm registro, ParametrosDeNegocio parametros) { var RegistroEnBD = ((TrabajoDeUsuarioDtm)parametros.registroEnBd); if (RegistroEnBD.Iniciado.HasValue && !RegistroEnBD.Terminado.HasValue) { GestorDeErrores.Emitir("Un trabajo en ejecución no se puede eliminar"); } }
//Todo: --> Reglas de negocio protected override void DespuesDePersistir(ProvinciaDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar || parametros.Operacion == enumTipoOperacion.Insertar) { //Si hay códigos postales que sus dos primeros dígitos corresponden con el de la provincia entonces relacionarlos } }
protected override void AntesDePersistir(UsuarioDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistir(registro, parametros); if (registro.IdArchivo == 0 || registro.IdArchivo == null) { registro.IdArchivo = null; registro.Archivo = null; } }
private static NegocioDtm ActualizarNegocio(GestorDeNegocios gestor, NegocioDtm leido, Type dtm, Type dto) { leido.ElementoDtm = dtm.FullName; leido.ElementoDto = dto.FullName; var p = new ParametrosDeNegocio(enumTipoOperacion.Modificar); p.Parametros[NegociosDeSe.ActualizarSeguridad] = true; return(gestor.PersistirRegistro(leido, p)); }
protected override void DespuesDePersistir(PuestosDeUnUsuarioDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar || parametros.Operacion == enumTipoOperacion.Eliminar) { var parteDeLaClave = $"Usuario:{registro.IdUsuario}"; ServicioDeCaches.EliminarElementos($"{nameof(GestorDeVistaMvc)}.{nameof(GestorDeVistaMvc.TienePermisos)}", parteDeLaClave); ServicioDeCaches.EliminarElementos($"{nameof(GestorDeElementos)}.{nameof(ValidarPermisosDePersistencia)}", parteDeLaClave); ServicioDeCaches.EliminarElementos($"{nameof(GestorDeElementos)}.{nameof(LeerModoDeAccesoAlNegocio)}", parteDeLaClave); } }
private static NegocioDtm CrearNegocio(GestorDeNegocios gestor, enumNegocio negocio, string nombre, Type dtm, Type dto, string icono) { var negocioDtm = new NegocioDtm(); negocioDtm.Enumerado = negocio.ToString(); negocioDtm.Nombre = nombre; negocioDtm.ElementoDtm = dtm.FullName; negocioDtm.ElementoDto = dto.FullName; negocioDtm.Icono = icono; negocioDtm.Activo = true; var p = new ParametrosDeNegocio(enumTipoOperacion.Insertar); return(gestor.PersistirRegistro(negocioDtm, p)); }
public static MunicipioDtm LeerMunicipioPorClave(ContextoSe contexto, int idProvincia, string codigoMunicipio, bool paraActualizar, bool errorSiNoHay = true, bool errorSiMasDeUno = true) { var gestor = Gestor(contexto, contexto.Mapeador); var filtros = new List <ClausulaDeFiltrado>(); var filtro1 = new ClausulaDeFiltrado(nameof(MunicipioDtm.IdProvincia), CriteriosDeFiltrado.igual, idProvincia.ToString()); var filtro3 = new ClausulaDeFiltrado(nameof(codigoMunicipio), CriteriosDeFiltrado.igual, codigoMunicipio); filtros.Add(filtro1); filtros.Add(filtro3); var p = new ParametrosDeNegocio(paraActualizar ? enumTipoOperacion.LeerConBloqueo : enumTipoOperacion.LeerSinBloqueo); p.Parametros.Add(ltrJoinAudt.IncluirUsuarioDtm, false); return(gestor.LeerRegistro(filtros, p, errorSiNoHay, errorSiMasDeUno)); }
//Todo: --> Reglas de negocio protected override void AntesDePersistir(CalleDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar || parametros.Operacion == enumTipoOperacion.Insertar) { //Si la calle esta relacionada con CPs validar que esos Cps corresponden al municipio } if (parametros.Operacion == enumTipoOperacion.Eliminar) { //validar que no se referencia } }
protected override void DespuesDePersistir(CodigoPostalDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Insertar) { //relacionar con la provincia usando los dos primeros caractéres var gestorProvincias = GestorDeProvincias.Gestor(Contexto, Contexto.Mapeador); var provinciaDtm = gestorProvincias.LeerRegistro(nameof(ProvinciaDtm.Codigo), registro.Codigo.PadLeft(5, '0').Substring(0, 2), errorSiNoHay: true, errorSiHayMasDeUno: true, traqueado: false, conBloqueo: false, aplicarJoin: false); GestorDeCpsDeUnaProvincia.CrearRelacion(Contexto, registro, provinciaDtm); //relacionar con el municipio usando lo indicado en los parámetros if (parametros.Parametros.ContainsKey(nameof(MunicipioDtm))) { var municipioDtm = (MunicipioDtm)parametros.Parametros[nameof(MunicipioDtm)]; GestorDeCpsDeUnMunicipio.CrearRelacion(Contexto, registro, municipioDtm); } } }
protected override void DespuesDePersistir(VistaMvcDtm registro, ParametrosDeNegocio parametros) { base.DespuesDePersistir(registro, parametros); var clasePermiso = ObtenerTabla(); if (parametros.Tipo == TipoOperacion.Insertar) { CrearPermiso(clasePermiso, registro.Nombre); } if (parametros.Tipo == TipoOperacion.Modificar) { ModificarPermiso(clasePermiso, registro.Nombre); } if (parametros.Tipo == TipoOperacion.Eliminar) { BorrarPermiso(clasePermiso, registro.Nombre); } }
protected override void AntesDePersistir(VistaMvcDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistir(registro, parametros); if (!registro.ElementoDto.IsNullOrEmpty()) { ExtensionesDto.ObtenerTypoDto(registro.ElementoDto); } if (parametros.Operacion == enumTipoOperacion.Insertar) { var permiso = GestorDePermisos.CrearObtener(Contexto, Mapeador, registro.Nombre, enumClaseDePermiso.Vista); registro.IdPermiso = permiso.Id; } if (parametros.Operacion == enumTipoOperacion.Modificar) { registro.IdPermiso = ((VistaMvcDtm)parametros.registroEnBd).IdPermiso; } }
protected override void AntesDePersistir(UsuarioDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistir(registro, parametros); if (registro.IdArchivo == 0 || registro.IdArchivo == null) { registro.IdArchivo = null; registro.Archivo = null; } if (parametros.Operacion == enumTipoOperacion.Insertar) { registro.password = GestorDePassword.Generar(registro.Login); } if (parametros.Operacion == enumTipoOperacion.Modificar) { registro.password = ((UsuarioDtm)parametros.registroEnBd).password; } }
//Todo: --> Reglas de negocio protected override void AntesDePersistir(MunicipioDtm registro, ParametrosDeNegocio parametros) { base.AntesDePersistir(registro, parametros); if (parametros.Operacion == enumTipoOperacion.Modificar || parametros.Operacion == enumTipoOperacion.Insertar) { //Obtener el código de la provincia del municipio //ver si el municipio está relacionado con códigos postales //si lo está, validar que los dos primeros dígitos del código postal corresponden con el código de la provincia } if (parametros.Operacion == enumTipoOperacion.Eliminar) { //Validar que no hay calles relacionadas con el municipio //Eliminar los CPS relacionados con el municipio } }
private static CodigoPostalDtm ProcesarCodigosPostales(EntornoDeTrabajo entorno, GestorDeCodigosPostales gestor, string provincia, string municipio, string cp, TrazaDeUnTrabajoDtm trazaInfDtm) { ParametrosDeNegocio operacion; var codigoPostalDtm = gestor.LeerRegistro(nameof(CodigoPostalDtm.Codigo), cp, errorSiNoHay: false, errorSiHayMasDeUno: true, traqueado: false, conBloqueo: false, aplicarJoin: false); if (codigoPostalDtm == null) { codigoPostalDtm = new CodigoPostalDtm(); codigoPostalDtm.Codigo = cp; operacion = new ParametrosDeNegocio(enumTipoOperacion.Insertar); entorno.ActualizarTraza(trazaInfDtm, $"Creando el codigo postal {cp}"); } else { entorno.ActualizarTraza(trazaInfDtm, $"El codigo postal {cp} ya existe"); GestorDeCpsDeUnMunicipio.CrearRelacionConMunicipioSiNoExiste(entorno.contextoDelProceso, codigoPostalDtm, "ES", provincia, municipio); return(codigoPostalDtm); } operacion.Parametros[ltrCps.NombreProvincia] = provincia; operacion.Parametros[ltrCps.NombreMunicipio] = municipio; return(gestor.PersistirRegistro(codigoPostalDtm, operacion)); }