Пример #1
0
        public IUser GetUser(string username)
        {
            var query = db.Users.Where(u => u.Username == username);

            if (!query.Any())
            {
                var e = new IllegalUsernameException("ERROR in GetLoggedInUser: Username does not exist!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            return(query.First());
        }
Пример #2
0
        public void DeleteUser(string username, string password, List <Tuple <IUser, bool> > users)
        {
            password = Crypto.Encrypt(password);
            var query = db.Users.Where(u => u.Username == username);

            if (!query.Any())
            {
                var e = new IllegalUsernameException("ERROR in DeleteUser: Username does not exist!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            query = query.Where(u => u.Password == password);

            if (!query.Any())
            {
                var e = new IllegalPasswordException("ERROR in DeleteUser: Wrong password!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            //Tuple<IUser, bool> userToDelete = null;
            //for (var i = 0; i < users.Count; i++)
            //{
            //    if (users[i].Item1.Username == username)
            //    {
            //        if (users[i].Item1.Username == password)
            //        {
            //            userToDelete = users[i];
            //        }
            //        else
            //        {
            //            var e = new IllegalPasswordException("ERROR in Edit Profile: Wrong password!");
            //            Logger.Log(Severity.Error, e.Message);
            //            throw e;
            //        }
            //    }
            //}

            //if (userToDelete == null)
            //{
            //    var e = new IllegalUsernameException("ERROR in Login: Username does not exist!");
            //    Logger.Log(Severity.Error, e.Message);
            //    throw e;
            //}
            var foundUser = users.Single(t => t.Item1.Username == username && t.Item1.Password == password);

            users.Remove(foundUser);
            db.Users.Remove(query.First());
            db.SaveChanges();
            Logger.Log(Severity.Action, "User: "******" deleted successfully!");
        }
Пример #3
0
        public IUser Login(string username, string password, List <Tuple <IUser, bool> > users)
        {
            password = Crypto.Encrypt(password);
            var query = db.Users.Where(u => u.Username == username);


            if (!query.Any())
            {
                var e = new IllegalUsernameException("ERROR in Login: Username does not exist!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }

            query = query.Where(u => u.Password == password);


            if (!query.Any())
            {
                var e = new IllegalPasswordException("ERROR in Login: Wrong password!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }

            var foundUser = users.SingleOrDefault(t => t.Item1.Username == username && t.Item1.Password == password);

            if (foundUser == null)
            {
                var e = new IllegalUsernameException("ERROR in Login: itsss nullll.");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            if (foundUser.Item2)
            {
                var e = new IllegalUsernameException("ERROR in Login: This User is already logged in.");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }

            var fuser = foundUser.Item1;

            users.Remove(foundUser);
            users.Add(new Tuple <IUser, bool>(fuser, true));
            //users.Where(u => u.Item1.Username == username).ToList().ForEach(i => i = new Tuple<IUser, bool>(foundUser.Item1, true));
            Logger.Log(Severity.Action, username + " logged in successfully!");

            return(fuser);
        }
Пример #4
0
        public void Register(string username, string password, List <Tuple <IUser, bool> > users)
        {
            var query = from u in db.Users
                        where u.Username == username
                        select u;

            if (query.Any())
            {
                var e = new IllegalUsernameException("ERROR in Register: Username already exists!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            User.CheckPassWord(password);
            password = Crypto.Encrypt(password);

            var newUser = new User(username, password, "Resources/profilePicture.png", "*****@*****.**", 5000);

            db.Users.Add(newUser);
            db.SaveChanges();
            users.Add(new Tuple <IUser, bool>(newUser, false));
            // USERNAME & PASSWORD CONFIRMED
            Logger.Log(Severity.Action, "Registration completed successfully!");
        }
Пример #5
0
        public Room CreateRoom(string roomName, string username, string creator, GamePreferences gp)
        {
            var user = UserLogic.GetLoggedInUser(username, Users);

            if (user != null)
            {
                var p = new Player(creator, user);
                if (IsRoomExist(roomName))
                {
                    var err = new IllegalRoomNameException("ERROR in CreateRoom: room name already taken!");
                    Logger.Log(Severity.Error, err.Message);
                    throw err;
                }
                var newRoom = new Room(roomName, p, gp);
                Rooms.Add(newRoom);
                Logger.Log(Severity.Action, "Room " + newRoom.Name + " created successfully by " + creator + "!");
                return(newRoom);
            }
            var e = new IllegalUsernameException("ERROR in CreateRoom: Username does not exist!");

            Logger.Log(Severity.Error, e.Message);
            throw e;
        }
Пример #6
0
        public IUser GetLoggedInUser(string username, List <Tuple <IUser, bool> > users)
        {
            var query = db.Users.Where(u => u.Username == username);

            if (!query.Any())
            {
                var e = new IllegalUsernameException("ERROR in GetLoggedInUser: Username does not exist!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            var foundUser = users.Single(t => t.Item1.Username == username);
            var ans       = foundUser.Item1;

            if (!foundUser.Item2)
            {
                var e = new IllegalUsernameException("ERROR in GetLoggedInUser: This User is not logged in.");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            return(ans);
            //for (var i = 0; i < users.Count; i++)
            //{
            //    if (users[i].Item1.Username == username)
            //    {
            //        if (!users[i].Item2)
            //        {
            //            var err = new IllegalUsernameException("ERROR in GetLoggedInUser: This User is not logged in.");
            //            Logger.Log(Severity.Error, err.Message);
            //            throw err;
            //        }
            //        return users[i].Item1;
            //    }
            //}
            //var e = new IllegalUsernameException("ERROR in Edit Profile: This user doesn't exist.");
            //Logger.Log(Severity.Error, e.Message);
            //throw e;
        }
Пример #7
0
        public IUser EditUser(string username, string newUserName, string newPassword, string newAvatarPath,
                              string newEmail, List <Tuple <IUser, bool> > users)
        {
            if (newEmail != "")
            {
                User.CanSetMail(newEmail);
            }
            if (newUserName != "")
            {
                User.CanSetUserName(newUserName);
            }
            if (newPassword != "")
            {
                User.CanSetPass(newPassword);
                newPassword = Crypto.Encrypt(newPassword);
            }
            //IUser ans= null;
            var query = db.Users.Where(u => u.Username == username);

            if (!query.Any())
            {
                var e = new IllegalUsernameException("ERROR in Edit Profile: Username does not exist!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            var user      = db.Users.First(u => u.Username == username);
            var foundUser = users.Single(t => t.Item1.Username == username);
            var ans       = foundUser.Item1;

            if (!foundUser.Item2)
            {
                var e = new IllegalUsernameException("ERROR in Edit Profile: This User is not logged in.");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            try
            {
                if (newUserName != "" && newUserName != username)
                {
                    query = db.Users.Where(u => u.Username == newUserName);
                    if (query.Any())
                    {
                        var e = new IllegalUsernameException("ERROR in Edit Profile: New username already exists!");
                        Logger.Log(Severity.Error, e.Message);
                        throw e;
                    }
                    ans = new User(ans, newUserName);
                    users.Remove(foundUser);
                    db.Users.Remove(user);
                    users.Add(new Tuple <IUser, bool>(ans, true));
                    foundUser = users.Single(t => t.Item1.Username == newUserName);
                    db.Users.Add((User)ans);
                    db.SaveChanges();
                    user = db.Users.First(u => u.Username == newUserName);
                    //user.Username = newUserName;
                }
                if (newPassword != "")
                {
                    ans.Password  = newPassword; //check if it changes
                    user.Password = newPassword;
                }

                if (newAvatarPath != "")
                {
                    ans.AvatarPath  = newAvatarPath;
                    user.AvatarPath = newAvatarPath;
                }

                if (newEmail != "")
                {
                    ans.Email  = newEmail;
                    user.Email = newEmail;
                }
            }
            catch (Exception ex)
            {
                var e = new Exception("ERROR in Edit Profile: Invalid new user details!" + ex.Message);
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }
            //var userExists = false;
            //for (var i = 0; i < users.Count; i++)
            //{
            //    if (users[i].Item1.Username == username)
            //    {
            //        ans = users[i].Item1;
            //        userExists = true;
            //        if (!users[i].Item2)
            //        {
            //            var e = new IllegalUsernameException("ERROR in Edit Profile: This User is not logged in.");
            //            Logger.Log(Severity.Error, e.Message);
            //            throw e;
            //        }
            //        try
            //        {
            //            if (newUserName != null&&newUserName!=username)
            //            {
            //                for (var j = 0; j < users.Count; j++)
            //                {
            //                    if (users[j].Item1.Username == newUserName)
            //                    {
            //                        var e = new IllegalUsernameException("ERROR in Edit Profile: New username already exists!");
            //                        Logger.Log(Severity.Error, e.Message);
            //                        throw e;
            //                    }
            //                }
            //                users[i].Item1.Username = newUserName;
            //            }
            //            if (newPassword != null)
            //                users[i].Item1.Password = newPassword;
            //            if (newAvatarPath != null)
            //                users[i].Item1.AvatarPath = newAvatarPath;
            //            if (newEmail != null)
            //                users[i].Item1.Email = newEmail;
            //        }
            //        catch (Exception)
            //        {
            //            var e = new Exception("ERROR in Edit Profile: Invalid new user details!");
            //            Logger.Log(Severity.Error, e.Message);
            //            throw e;
            //        }
            //    }
            //}

            //if (!userExists)
            //{
            //    var e = new IllegalUsernameException("ERROR in Login: Username does not exist!");
            //    Logger.Log(Severity.Error, e.Message);
            //    throw e;
            //}
            Logger.Log(Severity.Action, username + "'s profile edited successfully!");
            db.SaveChanges();
            return(ans);
        }
Пример #8
0
        public bool Logout(string username, List <Tuple <IUser, bool> > users)
        {
            //int i;
            //var exist = false;
            var query = db.Users.Where(u => u.Username == username);

            if (!query.Any())
            {
                var e = new IllegalUsernameException("ERROR in Login: Username does not exist!");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }


            var foundUser = users.Single(t => t.Item1.Username == username);

            if (!foundUser.Item2)
            {
                var e = new IllegalUsernameException("ERROR in Logout: User is already logged off.");
                Logger.Log(Severity.Error, e.Message);
                throw e;
            }

            var userRooms = GameCenter.GetGameCenter().Rooms.Where(r => r.IsInRoom(username)).ToList();

            foreach (Room r in userRooms)
            {
                r.ExitRoom(username);
            }

            var userRoomsSpectate = GameCenter.GetGameCenter().Rooms.Where(r => r.Isspectator(username)).ToList();

            foreach (Room r in userRoomsSpectate)
            {
                r.ExitSpectator(username);
            }

            var fuser = foundUser.Item1;

            users.Remove(foundUser);
            users.Add(new Tuple <IUser, bool>(fuser, false));
            // users.Where(u => u.Item1.Username == username).ToList().ForEach(i=>i= new Tuple<IUser, bool>(foundUser.Item1, false));
            //for (i = 0; i < users.Count; i++)
            //{
            //    if (users[i].Item1.Username == username)
            //    {
            //        if (!users[i].Item2)
            //        {
            //            var e = new IllegalUsernameException("ERROR in Logout: User is already logged off.");
            //            Logger.Log(Severity.Error, e.Message);
            //            throw e;
            //        }
            //        exist = true;
            //        users[i] = new Tuple<IUser, bool>(users[i].Item1, false);
            //    }
            //}

            //if (!exist)
            //{
            //    var e = new IllegalUsernameException("ERROR in Logout: Username does not exist!");
            //    Logger.Log(Severity.Error, e.Message);
            //    throw e;
            //}
            Logger.Log(Severity.Action, username + " logged out successfully!");
            return(true);
        }