Exemple #1
0
        public static void SyncGames()
        {
            RuntimeAddGame.SyncDll();
            List <IGame> loadedGames      = RuntimeAddGame.LoadedGames;
            List <IGame> notYetSavedGames = loadedGames.Except(SavedAvailableGames).ToList();

            notYetSavedGames.ForEach(AddGame);
            _allAvailableGames = SavedAvailableGames;
            SerializeHandling.Serialize(_allAvailableGames);
        }
Exemple #2
0
        public static IGame AddGame(IGame newGameProto)
        {
            if (_currentUser == null)
            {
                throw new ArgumentNullException();
            }
            var newGame = new GamePlaceHolder(newGameProto, _currentUser.ID);

            _currentUser.OwnedGames.Add(newGame);
            SerializeHandling.Serialize(_users);
            return(newGame);
        }
Exemple #3
0
        public static void UserMenu(User currentUser)
        {
            PrintUnderlined($"What do you want to do, {currentUser.Name}?");
            do
            {
                Console.WriteLine("1. List all my Games");
                Console.WriteLine("2. List all Games i can buy");
                Console.WriteLine("3. Enter command");
                Console.WriteLine("4. List Games from friend");
                Console.WriteLine("5. Borrow Game from friend");
                Console.WriteLine("6. Any Borrow Requests?");
                Console.WriteLine("7. Lend Games");
                Console.WriteLine("8. Reclaim Games");
                Console.WriteLine("9. Log out");

                switch (Console.ReadLine()?.ToLower())
                {
                case "1":
                case "1.":
                case "list all my games":
                {
                    Console.WriteLine("Owned Games:");
                    ListGames(currentUser.OwnedGames, true);
                    Console.WriteLine("Borrowed Games:");
                    ListGames(currentUser.BorrowedGames);
                    break;
                }

                case "2":
                case "2.":
                case "list all games i can buy":
                {
                    ListGames(currentUser.BuyableGames);
                    break;
                }

                case "3":
                case "3.":
                case "command":
                case "enter command":
                {
                    Configure(currentUser)?.Execute();
                    break;
                }

                case "4":
                case "4.":
                case "list games from friend":
                {
                    User friend = InputFriendName();
                    if (friend != null)
                    {
                        ListGames(friend.OwnedGames);
                    }
                    break;
                }

                case "5":
                case "5.":
                case "borrow":
                case "borrow game from friend":
                {
                    User friend = InputFriendName();
                    if (friend == null)
                    {
                        break;
                    }
                    IGame game = ChooseGameFromList(friend.OwnedGames);
                    if (game != null)
                    {
                        game._userWhoWantsToBorrow = currentUser.ID;
                    }
                    break;
                }

                case "6":
                case "6.":
                case "requests":
                {
                    ListGames(currentUser.WantsToBeBorrowed, true);
                    break;
                }

                case "7":
                case "7.":
                case "lend":
                case "lend games":
                {
                    ListGames(currentUser.WantsToBeBorrowed, true);
                    IGame game = ChooseGameFromList(currentUser.WantsToBeBorrowed);
                    currentUser.Lend(game);
                    break;
                }

                case "8":
                case "8.":
                case "reclaim":
                case "reclaim games":
                {
                    var borrowedOut = currentUser.OwnedGames.Where(g => g.IsLent).ToList();
                    ListGames(borrowedOut, true);
                    IGame game = ChooseGameFromList(borrowedOut);
                    currentUser.Reclaim(game);
                    break;
                }

                case "9":
                case "9.":
                case "logout":
                case "log out":
                {
                    return;
                }

                default:
                {
                    PrintUnderlined($"{currentUser.Name}, please choose one of the following:");
                    break;
                }
                }
                SerializeHandling.SyncSerialize();
            } while (true);
        }
Exemple #4
0
        public static User Intro()
        {
            PrintUnderlined("What do you want to do?");
            do
            {
                Console.WriteLine("1. Login");
                Console.WriteLine("2. Register");
                Console.WriteLine("3. List all available Games");
                Console.WriteLine("4. Sync Games");
                Console.WriteLine("9. Exit Console");

                string input = Console.ReadLine()?.ToLower();
                User   user;
                switch (input)
                {
                case "1":
                case "1.":
                case "login":
                {
                    user = Login();
                    if (user != null)
                    {
                        Console.WriteLine($"Hi, {user.Name}!");
                        return(user);
                    }
                    break;
                }

                case "2":
                case "2.":
                case "register":
                {
                    user = Register();
                    if (user != null)
                    {
                        Console.WriteLine($"Welcome, {user.Name}!");
                        return(user);
                    }
                    break;
                }

                case "3":
                case "3.":
                case "list":
                case "list all available games":
                {
                    ListGames(GameManagement.AllAvailableGames);
                    break;
                }

                case "4":
                case "4.":
                case "sync games":
                {
                    GameManagement.SyncGames();
                    break;
                }

                case "9":
                case "9.":
                case "exit":
                case "exit console":
                    return(null);

                default:
                {
                    PrintUnderlined("Please choose one of the following:");
                    break;
                }
                }
                SerializeHandling.SyncSerialize();
            } while (true);
        }
Exemple #5
0
 public static void AddGame(IGame newGame)
 {
     _savedAvailableGames.Add(newGame);
     SerializeHandling.Serialize(_savedAvailableGames);
 }
Exemple #6
0
 public static void AddUser(User newUser)
 {
     _users.Add(newUser);
     SerializeHandling.Serialize(_users);
 }