Ejemplo n.º 1
0
        public ActionResult <DeckResponse> GetDeckByName([FromQuery][Required] string deckName)
        {
            if (deckCollection.ContainsKey(deckName))
            {
                DeckResponse deckResponse = new DeckResponse();
                foreach (KeyValuePair <string, Deck> deck in deckCollection)
                {
                    if (deckName == deck.Key)
                    {
                        deckResponse.Name  = deck.Key;
                        deckResponse.Cards = deck.Value.CardsInDeck.Select(x => new CardResponse {
                            CardName = $"{x.Rank} {x.Suit}"
                        }).ToArray();
                        // Работает только с IList в DeckResponse;
                        //    deckResponse.Cards = new List<CardResponse>();
                        //    foreach (Card card in deck.Value.CardsInDeck)
                        //    {
                        //        CardResponse cardResponse = new CardResponse();
                        //        cardResponse.CardName = card.Rank + " " + card.Suit;

                        //        deckResponse.Cards.Add(cardResponse);
                        //    }
                    }
                }
                return(Ok(deckResponse));
            }

            return(NotFound());
        }
        public async Task Get_Decks_ReturnSuccess_With_ValidResponse()
        {
            // Arrange
            //var _client = _factory.CreateClient();


            FlurlClient flurlClient = new FlurlClient(_client);

            // Act
            DeckResponse _deckResponse = await flurlClient.Request("/decks").GetJsonAsync <DeckResponse>();

            // Assert
            _deckResponse.Should().NotBeNull();
            _deckResponse.Decks.Count.Should().Be(2);
            _deckResponse.Decks.Should().BeEquivalentTo(
                new List <DeckResponseDto>()
            {
                new DeckResponseDto()
                {
                    Id         = 1,
                    Name       = "JavaScript",
                    TotalCards = 0
                },
                new DeckResponseDto()
                {
                    Id         = 2,
                    Name       = "C#",
                    TotalCards = 0
                }
            }
                );
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Get()
        {
            List <Deck> _decks = await _flashcardDataRepository.GetAllDecks();


            DeckResponse _deckResponse = _mapper.Map <DeckResponse>(_decks);

            return(Ok(_deckResponse));
        }
        public async Task Add_NewDeck_ReturnsSuccess_Adds_NewDeck()
        {
            // Arrange
            //var _client = _factory.CreateClient();


            FlurlClient flurlClient = new FlurlClient(_client);

            // Act
            HttpResponseMessage _resp = await flurlClient.Request("/decks").PostJsonAsync(new DeckRequest()
            {
                Name = "React"
            });

            //Assert
            _resp.IsSuccessStatusCode.Should().BeTrue();
            _resp.StatusCode.Should().Be(HttpStatusCode.Created);

            DeckResponse _deckResponse = await flurlClient.Request("/decks").GetJsonAsync <DeckResponse>();

            // Do GET call and assert that new deck is added and returned
            _deckResponse.Decks.Count.Should().Be(3);
            _deckResponse.Decks.Should().BeEquivalentTo(
                new List <DeckResponseDto>()
            {
                new DeckResponseDto()
                {
                    Id         = 1,
                    Name       = "JavaScript",
                    TotalCards = 0
                },
                new DeckResponseDto()
                {
                    Id         = 2,
                    Name       = "C#",
                    TotalCards = 0
                },
                new DeckResponseDto()
                {
                    Id         = 3,
                    Name       = "React",
                    TotalCards = 0
                }
            }
                );
            ////Clean up using Delete call
            //_resp = await flurlClient.Request("/decks/3").DeleteAsync();
            //_resp.IsSuccessStatusCode.Should().BeTrue("Failed to delete deck id 3");
        }
Ejemplo n.º 5
0
        public CardCast(GameManager manager, IEnumerable<string> arguments)
        {
            if (arguments.Count() == 0)
                throw new Exception("Need cardcast code");
            Deck = GetDeckInfo(arguments.First());
            var cards = GetCards(Deck.code);

            _whiteCards = new List<Card>();
            _blackCards = new List<Card>();
            Random rng = new Random();
            foreach (var card in cards.calls.OrderBy(a => rng.Next()))
            {
                _blackCards.Add(new Card() { Parts = card.text.ToArray() });
            }
            foreach (var card in cards.responses.OrderBy(a => rng.Next()))
            {
                _whiteCards.Add(new Card() { Parts = card.text.ToArray() });
            }
        }
Ejemplo n.º 6
0
        public async Task <DeckResponse> GetDecks()
        {
            DeckResponse deckResponse = null;

            if (!CheckToken())
            {
                return(null);
            }

            try
            {
                deckResponse = await _baseUrl.AppendPathSegment("/decks")
                               .WithOAuthBearerToken(_token)
                               .GetJsonAsync <DeckResponse>();
            }
            catch (FlurlHttpException e)
            {
                return(null);
            }
            return(deckResponse);
        }
Ejemplo n.º 7
0
        public async Task <ViewResult> Index()
        {
            DeckResponse deckResponse = await _flashcardClient.GetDecks();

            List <DeckViewModel> decksToDisplay = new List <DeckViewModel>();

            if (deckResponse != null)
            {
                foreach (var deck in deckResponse.Decks)
                {
                    decksToDisplay.Add(new DeckViewModel()
                    {
                        Id         = deck.Id,
                        Name       = deck.Name,
                        TotalCards = deck.totalCards
                    });
                }
            }


            return(View(decksToDisplay));
        }