public void CreateUser(UserRegisterModel registerUser) { if (registerUser == null) { throw new ArgumentNullException("UserRegisteModel is null"); } ValidateUsername(registerUser.Username); ValidateNickname(registerUser.Nickname); ValidateAuthCode(registerUser.AuthCode); var usernameToLower = registerUser.Username.ToLower(); var nickmameToLower = registerUser.Nickname.ToLower(); var user = this.Data.Users.GetAll().FirstOrDefault(u => u.Username.ToLower() == usernameToLower || u.Nickname.ToLower() == nickmameToLower); if (user != null) { if (user.Username.ToLower() == usernameToLower) { throw new ServerErrorException("Username already exists", "ERR_DUP_USR"); } if (user.Nickname.ToLower() == nickmameToLower) { throw new ServerErrorException("Nickname already exists", "ERR_DUP_NICK"); } } User newUser = new User() { Username = registerUser.Username, Nickname = registerUser.Nickname, AuthCode = registerUser.AuthCode, ConnectionId = registerUser.ConnectionId, }; this.Data.Users.Add(newUser); this.Data.SaveChanges(); }
public void CreateUser_WhenNicknameAlreadyExists_ShouldThrowException() { User[] users = new User[] { new User { Username = "******", Nickname = "nickname" }, new User { Username = "******", Nickname = "otherNickName" }, }; UserRegisterModel userModel = new UserRegisterModel() { Username = "******", Nickname = "nickname", AuthCode = "80a63648010756ed51eecccf94c01bc0015048c5", ConnectionId = "75ccd4c3-fd0f-4a1d-80bb-885fb1bb5296", }; mock.Setup(m => m.Users.GetAll()).Returns(users.AsQueryable()); UserService userService = new UserService(mock.Object); userService.CreateUser(userModel); }
public void CreateUser_WhenModelIsValid_ShouldAddToRepository() { List<User> users = new List<User>(); users.Add(new User { Username = "******", Nickname = "nickname" }); users.Add(new User { Username = "******", Nickname = "otherNickName" }); UserRegisterModel userModel = new UserRegisterModel() { Username = "******", Nickname = "kaluhckua", AuthCode = "80a63648010756ed51eecccf94c01bc0015048c5", ConnectionId = "75ccd4c3-fd0f-4a1d-80bb-885fb1bb5296", }; mock.Setup(m => m.Users.GetAll()).Returns(users.AsQueryable()); mock.Setup(m => m.Users.Add(It.IsAny<User>())).Callback((User user) => users.Add(user)); UserService userService = new UserService(mock.Object); userService.CreateUser(userModel); Assert.AreEqual(userModel.AuthCode, users[2].AuthCode); Assert.AreEqual(userModel.Nickname, users[2].Nickname); Assert.AreEqual(userModel.Username, users[2].Username); Assert.AreEqual(userModel.ConnectionId, users[2].ConnectionId); }
public UserLoggedModel RegisterAndReturnLoggedUser(UserRegisterModel user) { user.ConnectionId = Context.ConnectionId; try { UserServise.CreateUser(user); var userLogged = Login(user); return userLogged; } catch (ServerErrorException ex) { Clients.Caller.serverErrorException(ex.Message); return null; } }