Beispiel #1
0
        public async Task <Deck> Add(YgoProDeck ygoProDeck)
        {
            var newDeck = new Deck
            {
                UserId      = ygoProDeck.UserId,
                Name        = ygoProDeck.Name,
                Description = ygoProDeck.Description,
                Created     = DateTime.UtcNow,
                Updated     = DateTime.UtcNow
            };

            var deckTypes = (await _deckTypeRepository.AllDeckTypes()).ToDictionary(dt => dt.Name, dt => dt);

            var mainDeckUniqueCards  = ygoProDeck.Main.Select(c => c).Distinct().ToList();
            var extraDeckUniqueCards = ygoProDeck.Extra.Select(c => c).Distinct().ToList();
            var sideDeckUniqueCards  = ygoProDeck.Side.Select(c => c).Distinct().ToList();

            var mainDeckCardCopies  = ygoProDeck.Main.GroupBy(c => c).ToDictionary(g => g.Key, g => g.Count());
            var extraDeckCardCopies = ygoProDeck.Extra.GroupBy(c => c).ToDictionary(g => g.Key, g => g.Count());
            var sideDeckCardCopies  = ygoProDeck.Side.GroupBy(c => c).ToDictionary(g => g.Key, g => g.Count());

            newDeck = await AddCardsToDeckByCardNumber(mainDeckUniqueCards, newDeck, deckTypes[DeckTypeConstants.Main], mainDeckCardCopies);

            newDeck = await AddCardsToDeckByCardNumber(extraDeckUniqueCards, newDeck, deckTypes[DeckTypeConstants.Extra], extraDeckCardCopies);

            newDeck = await AddCardsToDeckByCardNumber(sideDeckUniqueCards, newDeck, deckTypes[DeckTypeConstants.Side], sideDeckCardCopies);

            await _deckRepository.Add(newDeck);

            return(newDeck);
        }
Beispiel #2
0
        public PackUnit CreatePack(string packTitle = null, PackTypeVariations packType = PackTypeVariations.cards52)
        {
            PackUnit packUnit = _packFactory.Create(packTitle, packType);
            _packStorage.Add(packUnit);

            return packUnit;
        }
Beispiel #3
0
        public bool AddWithCheck(Player newPlayer)
        {
            if (GodsArenaApiContext.Players.Where(p => p.Username == newPlayer.Username).FirstOrDefault() == null)
            {
                Wallet newWallet = new Wallet()
                {
                    Player = newPlayer
                };
                PlayerStats newPlayerStats = new PlayerStats()
                {
                    Player = newPlayer
                };
                Deck newDeck1 = new Deck()
                {
                    Player = newPlayer, Name = "First deck", IsActive = true
                };
                Deck newDeck2 = new Deck()
                {
                    Player = newPlayer, Name = "Second deck", IsActive = false
                };
                Deck newDeck3 = new Deck()
                {
                    Player = newPlayer, Name = "Third deck", IsActive = false
                };
                Pack newPack = new Pack()
                {
                    Player = newPlayer
                };

                GodsArenaApiContext.Players.Add(newPlayer);

                _walletRepository.Add(newWallet);
                _playerStatsRepository.Add(newPlayerStats);
                _deckRepository.Add(newDeck1);
                _deckRepository.Add(newDeck2);
                _deckRepository.Add(newDeck3);
                _packRepository.Add(newPack);
                return(true);
            }
            return(false);
        }