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); } }
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; } } }
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); }
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; } }
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); } }
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); } }