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);
        }
Пример #3
0
        //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);
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
            }
        }
Пример #7
0
        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");
            }
        }
Пример #9
0
 //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)
     {
     }
 }
Пример #10
0
        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));
        }
Пример #12
0
 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}");
     }
 }
Пример #13
0
 //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
     }
 }
Пример #14
0
 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");
     }
 }
Пример #17
0
        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");
            }
        }
Пример #18
0
        //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
            }
        }
Пример #19
0
        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));
        }
Пример #21
0
 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));
        }
Пример #23
0
        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));
        }
Пример #24
0
        //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
            }
        }
Пример #25
0
        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);
            }
        }
Пример #27
0
        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;
            }
        }
Пример #29
0
        //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
            }
        }
Пример #30
0
        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));
        }