public void AddUserToGroup(int groupId, int userId) { if (groupId == 0 || userId == 0) { throw new ArgumentException("GroupId and UserId must be provided"); } // Check user exists // Check group exists // Check user is already a member var dbItem = _dbContext.UserGroups.FirstOrDefault(x => x.GroupId == groupId && x.UserId == userId); if (dbItem != null) { dbItem.IsActive = true; dbItem.LeaveDate = null; } else { _dbContext.UserGroups.Add(new UserGroup { GroupId = groupId, UserId = userId, IsActive = true, JoinDate = DateTime.Now }); } _dbContext.SaveChanges(); }
public void AddUser(EditUserMessage userMessage) { // Check required info persist // Check username is not taken if (_dbContext.Users.AsNoTracking().Any(x => x.Username.ToLower().Equals(userMessage.Username.ToLower()))) { throw new InvalidOperationException($"Username '{userMessage.Username}' is already taken"); } // Check mobileNumber is unique // Check emailaddress is unique var newUser = new User { Name = userMessage.Name, Surname = userMessage.Surname, ProfilePhoto = userMessage.ProfilePhoto, Username = userMessage.Username }; if (!string.IsNullOrEmpty(userMessage.EmailAddress)) { newUser.UserContacts = new List <UserContact> { new UserContact { EmailAddress = userMessage.EmailAddress, PostCode = userMessage.PostCode, TelephoneNumber = userMessage.TelephoneNumber, RegionCode = userMessage.RegionCode } }; } _dbContext.Users.Add(newUser); _dbContext.SaveChanges(); }
public void ObfuscateUser(EditUserMessage userMessage) { if (userMessage.UserId == 0 && string.IsNullOrWhiteSpace(userMessage.Username)) { throw new ArgumentException($"Either user id or username must be provided"); } if (userMessage.UserId == 0 && !string.IsNullOrWhiteSpace(userMessage.Username)) { userMessage.UserId = _userService.GetUserIdByUserName(userMessage.Username); } var dbUser = _dbContext.Users.Include(b => b.UserContacts).FirstOrDefault(x => x.UserId == userMessage.UserId); dbUser.Name = OBFUSCATE_STRING; dbUser.Surname = OBFUSCATE_STRING; dbUser.ProfilePhoto = OBFUSCATE_STRING; // Obfuscate user financial if (dbUser.UserFinancial != null) { dbUser.UserFinancial.IBAN = OBFUSCATE_STRING; dbUser.UserFinancial.SortCode = OBFUSCATE_STRING; dbUser.UserFinancial.AccountNumber = OBFUSCATE_STRING; } // Obfuscate user contacts if (dbUser.UserContacts != null) { foreach (var contactInfo in dbUser.UserContacts) { contactInfo.PostCode = OBFUSCATE_POSTCODE; contactInfo.TelephoneNumber = OBFUSCATE_NUMBER; contactInfo.EmailAddress = OBFUSCATE_EMAIL; } } _dbContext.SaveChanges(); }