Exemplo n.º 1
0
        public void CreateUser(string username, string nickname, string authCode)
        {
            ValidateUsername(username);
            ValidateNickname(nickname);
            ValidateAuthCode(authCode);
            using (ChessEntities context = new ChessEntities())
            {
                var usernameToLower = username.ToLower();
                var nicknameToLower = nickname.ToLower();

                var dbUser = context.Users.FirstOrDefault(u => u.Name == usernameToLower || u.Nickname.ToLower() == nicknameToLower);

                if (dbUser != null)
                {
                    if (dbUser.Name.ToLower() == usernameToLower)
                    {
                        throw new InvalidOperationException("Username already exists");
                    }
                    else
                    {
                        throw new InvalidOperationException("Nickname already exists");
                    }
                }

                dbUser = new User()
                {
                    Name     = usernameToLower,
                    Nickname = nickname,
                    AuthCode = authCode
                };
                context.Users.Add(dbUser);
                context.SaveChanges();
            }
        }
Exemplo n.º 2
0
        public int LoginUser(string sessionKey)
        {
            ValidateSessionKey(sessionKey);
            var context = new ChessEntities();

            using (context)
            {
                var user = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey);
                if (user == null)
                {
                    throw new InvalidOperationException("Invalid user authentication");
                }
                return((int)user.Id);
            }
        }
Exemplo n.º 3
0
        public static IEnumerable <UserModel> GetAllUsers()
        {
            var context = new ChessEntities();

            using (context)
            {
                var users =
                    (from user in context.Users
                     select new UserModel()
                {
                    Id = (int)user.Id,
                    Nickname = user.Nickname
                });
                return(users.ToList());
            }
        }
Exemplo n.º 4
0
        public void LogoutUser(string sessionKey)
        {
            ValidateSessionKey(sessionKey);
            var context = new ChessEntities();

            using (context)
            {
                var user = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey);
                if (user == null)
                {
                    throw new InvalidOperationException("Invalid user authentication");
                }
                user.SessionKey = null;
                context.SaveChanges();
            }
        }
Exemplo n.º 5
0
        public string LoginUser(string username, string authCode, out string nickname)
        {
            ValidateUsername(username);
            ValidateAuthCode(authCode);
            var context = new ChessEntities();

            using (context)
            {
                var usernameToLower = username.ToLower();
                var user            = context.Users.FirstOrDefault(u => u.Name == usernameToLower && u.AuthCode == authCode);
                if (user == null)
                {
                    throw new InvalidOperationException("Invalid username or password");
                }

                var sessionKey = GenerateSessionKey((int)user.Id);
                user.SessionKey = sessionKey;
                nickname        = user.Nickname;
                context.SaveChanges();
                return(sessionKey);
            }
        }