Example #1
0
        private void SaveEdit()
        {
            // Create character change list
            ReadOnlyCollection <Character> AddedCharacters   = EditPlayer.Characters.Where(c => OriginalCharacters.Any(x => x == c)).ToReadOnlyCollection();
            ReadOnlyCollection <Character> RemovedCharacters = OriginalCharacters.Where(c => !EditPlayer.Characters.Contains(c)).ToReadOnlyCollection();

            // Update player info
            db.UpdatePlayer(EditPlayer);

            // Add / Remove characters
            foreach (Character character in AddedCharacters)
            {
                db.AddCharacter(EditPlayer.Id, character);
            }
        }
Example #2
0
        public static void FindPlayer(PlayerDatabase playerData)
        {
            // Get player
            Print("Player's name? ");
            string input  = Read().ToLowerInvariant();
            Player player = playerData.GetPlayersByName(input).Single();

            PrintLine($"Found Player: {player.ToString()}.");

            // Check if user wants to alter player data
            Print("Alter player data? ");
            input = Read().ToLowerInvariant();
            if (input == "no" || input == "n")
            {
                return;
            }

            // Alter player data
            bool done = false;

            Print("What would you like to do? For help, enter 'help'. When done changing player info, enter 'done'.");
            input = Read();
            while (!done)
            {
                switch (input.ToLowerInvariant())
                {
                case "add character":
                    Print($"Add which character to {player.Name}? ");
                    string    characterString = Read().ToLowerInvariant();
                    Character character       = GetCharacter();
                    playerData.AddCharacter(player.Id, character);
                    break;

                case "change tag":
                    Print("Change tag to what? ");
                    string tag = Read();
                    playerData.ChangeTag(player.Id, tag);
                    break;

                case "get info":
                    PrintLine(player.ToString());
                    break;

                // TODO: Add RemoveTag and RemoveCharacter functions to PlayerDatabase, and add that functionality here.

                /*case "remove tag":
                 *      PrintLine($"Current tags are: {player.PrintTags()}");
                 *      Print($"Remove which tag? ");
                 *      input = Read();
                 *      while(!player.Tags.Contains(input))
                 *      {
                 *              Print("Tag does not exist. Enter a valid tag to remove. Remove which tag? ");
                 *              input = Read();
                 *      }
                 *      playerData.RemoveTag(player.Id, input);
                 *      PrintLine("Tag Removed.");
                 *      break;
                 */
                case "done":
                    done = true;
                    break;

                case "help":
                    Print(@"The commands are: 
* 'Change Tag' - This changes the currently selected player's prefered tag.
* 'Add Character' - This adds a character to the currently selected player's information.
* 'Get Info' - This gets all of the currently selected players information, such as their rating, tags, and the characters they play.
* 'Done' - This exits the edit player sub-menu.");
                    break;
                }

                Print("What would you like to do? For help, enter 'help'. When done changing player info, enter 'done'.");
                input = Read();
            }
        }