/*---------- ---------- ---------- ---------- ----------*/

    // Deck related
    // Creating decks, getting decks, deleting & modifying decks
    //
    public async Task <Deck> CreateDeck(Guid playerId)
    {
        var filter = Builders <Player> .Filter.Eq(player => player.Id, playerId);

        var deckCreation = new CardMethods();

        var deck = deckCreation.CreateADeck();

        deck.Id = Guid.NewGuid();

        var pushDeck = Builders <Player> .Update.Push(player => player.DecksOwned, deck);

        FindOneAndUpdateOptions <Player> options = new FindOneAndUpdateOptions <Player>()
        {
            ReturnDocument = ReturnDocument.After
        };

        Player player = await _playerCollection.FindOneAndUpdateAsync(filter, pushDeck, options);

        return(deck);
    }