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 } } ); }
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"); }
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() }); } }
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); }
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)); }