Пример #1
0
        public async Task <ListPileResponse> Get(string deckId, string pileName)
        {
            var deck = await repository.GetDeckAsync(deckId);

            var response = new ListPileResponse()
            {
                DeckId    = deckId,
                Remaining = deck.Remaining
            };

            var piles = new Dictionary <string, IPileInfo>();

            foreach (var p in deck.Piles)
            {
                IPileInfo pileInfo;
                if (p.Name == pileName)
                {
                    pileInfo = new PileInfo()
                    {
                        Remaining = p.Remaining
                    };

                    foreach (var c in p.Cards)
                    {
                        var cardInfo = new CardInfo()
                        {
                            Code  = c.Code,
                            Suit  = c.Suit,
                            Value = c.Value
                        };
                        ((PileInfo)pileInfo).Cards.Add(cardInfo);
                    }
                }
                else
                {
                    pileInfo = new ShortPileInfo()
                    {
                        Remaining = p.Remaining
                    };
                }
                piles.Add(p.Name, pileInfo);
            }
            response.Piles = piles;
            return(response);
        }