public UserInvite InviteUser(Guid userInvitedById, Guid groupId, string email) { email = email.ToLower(); Group group = this.groupRepo.FindById(groupId); if (this.userRepo.Find(x => x.Email == email).Any()) { throw new ValidationException("This user already exists in the system"); } UserInvite userInvite = this.userInviteRepo.FindOne(x => x.Email == email); if (userInvite == null) { userInvite = UserInvite.Create(userInvitedById, email); userInvite.Add(group); this.userInviteRepo.Add(userInvite); } else { userInvite.Add(group); } return(userInvite); }
public static UserInvite Create(Guid userInvitedById, string email) { if (userInvitedById == Guid.Empty) { throw new ValidationException("User invited by Id can't be empty"); } if (String.IsNullOrEmpty(email)) { throw new ValidationException("Email can't be empty"); } if (!Regex.IsMatch(email, StringValidation.Email, RegexOptions.IgnoreCase)) { throw new ValidationException("Invalid email specified"); } UserInvite userInvite = new UserInvite(); userInvite.Id = Guid.NewGuid(); userInvite.InviteKey = Guid.NewGuid(); userInvite.Email = email; userInvite.InvitedByUserId = userInvitedById; userInvite.DateCreated = TimeProvider.Current.UtcNow; userInvite.DateModified = TimeProvider.Current.UtcNow; userInvite.groupIds = new List <Guid>(); DomainEvents.Raise <UserInvited>(new UserInvited(userInvite)); return(userInvite); }
public override bool Equals(object obj) { UserInvite compareTo = obj as UserInvite; if (compareTo == null) { throw new Exception("Can't compare objects of different types"); } return(compareTo.Email == this.Email && compareTo.tenantId == this.tenantId); }
public void UninviteUser(Guid userInvitedById, Guid groupId, string email) { email = email.ToLower(); Group group = this.groupRepo.FindById(groupId); UserInvite userInvite = this.userInviteRepo.FindOne(x => x.Email == email); if (userInvite == null) { throw new ValidationException("Can't uninvite unexisting user"); } userInvite.Remove(group); if (userInvite.GroupIds.Count == 0) { this.userInviteRepo.Remove(userInvite); } }
public void Add(User user) { if (this.userRepo.Count() == 0) { this.userRepo.Add(user); return; } if (this.userRepo.Find(x => x.IDPID == user.IDPID).Any()) { throw new ValidationException("User with this IDPID already exists"); } if (this.userRepo.Find(x => x.Email == user.Email).Any()) { throw new ValidationException("User with this email already exists"); } UserInvite userInvite = this.userInviteRepo.FindOne(x => x.Email == user.Email); if (userInvite == null) { throw new ValidationException("There is no invite for the user with this email address"); } this.userRepo.Add(user); IEnumerable <Group> groups = this.groupRepo.Find(x => userInvite.GroupIds.Contains(x.Id)); foreach (Group group in groups) { group.Add(user); } this.userInviteRepo.Remove(userInvite); }
public UserInvited(UserInvite invite) { this.Invite = invite; }
public void RemoveUserInvite(Guid userInviteId) { UserInvite userInvite = this.userInviteRepo.FindById(userInviteId); this.userInviteRepo.Remove(userInvite); }
public void ReInviteUser(Guid userInviteId) { UserInvite userInvite = this.userInviteRepo.FindById(userInviteId); userInvite.ResendInvite(); }