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(); } }
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); } }
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()); } }
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(); } }
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); } }