Пример #1
0
        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();
        }
Пример #2
0
 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);
 }
Пример #3
0
        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);
        }
Пример #4
0
 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;
     }
 }