示例#1
0
 private void validarTelefonos(Miembro entidad)
 {
     if ((entidad.Tel_Casa.Trim().Length <= 0) && (entidad.Tel_Movil.Trim().Length <= 0) && (entidad.Tel_Trabajo.Trim().Length <= 0))
     {
         throw new ExcepcionReglaNegocio(Literales.MinimoUnTelefonoRequerido);
     }
 }
示例#2
0
 private void validarConyuge(Miembro entidad)
 {
     if (entidad.ConyugeId != null)
     {
         Miembro conyuge = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.MiembroId == entidad.ConyugeId.Value && o.Borrado == false select o).SingleOrDefault();
         if (conyuge != null && (conyuge.ConyugeId == null || conyuge.ConyugeId.Value != entidad.MiembroId))
         {
             conyuge.ConyugeId = entidad.MiembroId;
         }
     }
 }
示例#3
0
        private void validarEntidad(System.Data.Objects.ObjectStateEntry entry)
        {
            Miembro entidad = (Miembro)entry.Entity;

            Validaciones.ValidarEmail(entidad.Email);
            validarConyuge(entidad);
            validarTelefonos(entidad);
            validarPassword(entidad);
            validarLiderzagoDeMiembro(entidad);
            validarUnicidad(entry);
        }
示例#4
0
        private void validarPassword(Miembro entidad)
        {
            int minLongitudPwd = 6;

            if (entidad.Contrasena != null)
            {
                if ((entidad.Contrasena.Trim().Length > 0) && (entidad.Contrasena.Trim().Length < minLongitudPwd))
                {
                    throw new ExcepcionReglaNegocio(String.Format("La contraseña no cumple con el mínimo requerido de {0} caracteres.", minLongitudPwd));
                }

                if (entidad.Contrasena.Equals(entidad.Email, StringComparison.OrdinalIgnoreCase))
                {
                    throw new ExcepcionReglaNegocio("La contraseña no puede ser lo mismo que el email.");
                }
            }
            else
            {
                entidad.Contrasena = string.Empty;
            }
        }
示例#5
0
        private void validarLiderzagoDeMiembro(Miembro entidad)
        {
            //Validamos que el usuario NO sea lider de la celula a la que esta asignado
            if (entidad.CelulaLider.Any(o => o.Borrado == false && o.CelulaId == entidad.CelulaId))
            {
                throw new ExcepcionReglaNegocio(Literales.MiembroNoPuedeSerLiderDeCelulaQueAsiste);
            }

            //Validamos que no existan lideres de una misma celula que no asistan a la misma celula
            List <int> celulasQueEsLider = (from o in entidad.CelulaLider where o.Borrado == false select o.CelulaId).ToList <int>();

            if (SesionActual.Instance.getContexto <IglesiaEntities>().CelulaLider.Any(o =>
                                                                                      celulasQueEsLider.Contains(o.CelulaId) &&
                                                                                      o.Borrado == false &&
                                                                                      o.Miembro.Borrado == false &&
                                                                                      o.Miembro.CelulaId != entidad.CelulaId &&
                                                                                      o.MiembroId != entidad.MiembroId
                                                                                      ))
            {
                throw new ExcepcionReglaNegocio(Literales.LideresEnDistintasCelulas);
            }
        }
示例#6
0
        private void validarUnicidad(System.Data.Objects.ObjectStateEntry entry)
        {
            Miembro entidadActual = ((Miembro)entry.Entity);

            // Validamos si no existe ya un miembro con el mismo correo
            Miembro entidadPreexistente = (from o in SesionActual.Instance.getContexto <IglesiaEntities>().Miembro where o.Email == entidadActual.Email select o).SingleOrDefault();

            if (entidadPreexistente != null)
            {
                string registroExistenteMsg = string.Format("Ya existe algún miembro registrado con ese email [{0}] cuyo Id es [{1}] y el cual se encuentra asignado a la célula [{2}] [{3}].", entidadPreexistente.Email, entidadPreexistente.MiembroId, entidadPreexistente.Celula.Descripcion, entidadPreexistente.CelulaId);

                if (entry.State == System.Data.EntityState.Added)
                {
                    if (entidadPreexistente.Borrado == false)
                    {
                        throw new ExcepcionReglaNegocio(registroExistenteMsg);
                    }
                    else
                    {
                        // Modificamos la entidad BORRADA con los nuevos datos, en vez de crear una nueva
                        entidadActual.MiembroId = entidadPreexistente.MiembroId;
                        SesionActual.Instance.getContexto <IglesiaEntities>().Miembro.Detach(entidadActual);
                        SesionActual.Instance.getContexto <IglesiaEntities>().ObjectStateManager.ChangeObjectState(entidadActual, System.Data.EntityState.Detached);
                        System.Data.Objects.ObjectStateEntry state = SesionActual.Instance.getContexto <IglesiaEntities>().ObjectStateManager.GetObjectStateEntry(entidadPreexistente);
                        state.ApplyCurrentValues(entidadActual);
                        state.ChangeState(System.Data.EntityState.Modified);
                    }
                }
                else if (entry.State == System.Data.EntityState.Modified)
                {
                    if (Validaciones.ValidarCambiosEnCampo(entry, "email"))
                    {
                        throw new ExcepcionReglaNegocio(registroExistenteMsg);
                    }
                }
            }
        }
        private void crearMiembroDesdeBoleta(ConsolidacionBoleta entidad)
        {
            IglesiaEntities contexto = new IglesiaEntities();

            Miembro miembro = (from o in contexto.Miembro where o.Email == entidad.Email select o).SingleOrDefault();

            if (miembro == null)
            {
                miembro                      = new Miembro();
                miembro.CelulaId             = entidad.AsignadaACelulaId.Value;
                miembro.Email                = entidad.Email;
                miembro.Contrasena           = string.Empty;
                miembro.Primer_Nombre        = entidad.PrimerNombre;
                miembro.Segundo_Nombre       = entidad.SegundoNombre;
                miembro.Apellido_Paterno     = entidad.ApellidoPaterno;
                miembro.Apellido_Materno     = entidad.ApellidoMaterno;
                miembro.GeneroId             = entidad.GeneroId;
                miembro.EstadoCivilId        = entidad.EstadoCivilId;
                miembro.Fecha_Nacimiento     = (entidad.FechaDeNacimiento.HasValue ? entidad.FechaDeNacimiento : DateTime.Now);
                miembro.UbicacionMunicipioId = entidad.UbicacionMunicipioId;
                miembro.Colonia              = entidad.Colonia;
                miembro.Direccion            = entidad.Direccion;
                miembro.Tel_Casa             = entidad.TelefonoCasa;
                miembro.Tel_Movil            = entidad.TelefonoMovil;
                miembro.Tel_Trabajo          = entidad.TelefonoTrabajo;
                miembro.Comentario           = entidad.Observaciones;

                miembro.Creacion       = DateTime.Now;
                miembro.Modificacion   = DateTime.Now;
                miembro.CreacionId     = SesionActual.Instance.UsuarioId;
                miembro.ModificacionId = SesionActual.Instance.UsuarioId;

                contexto.AddObject(miembro.GetType().Name, miembro);
                contexto.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave, true);
            }
        }