Beispiel #1
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);
            }
        }
Beispiel #2
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);
                }
            }
        }