public ActionResult <List <PokerhandApiOutput> > Post([FromBody] List <PokerhandApiInput> hands) { // Null Check if (hands == null) { return(new BadRequestObjectResult("Null request.")); } try { Dictionary <string, Hand> pokerHands = new Dictionary <string, Hand>(); foreach (PokerhandApiInput hand in hands) { pokerHands.Add(hand.Name, PokerhandApiParser.ConvertApiInputToPokerHands(hand.Cards)); } List <KeyValuePair <string, Hand> > sortedhands = pokerHands.ToList(); sortedhands.Sort((pair1, pair2) => pair2.Value.CompareTo(pair1.Value)); List <PokerhandApiOutput> response; response = sortedhands.Select((hand, index) => new PokerhandApiOutput { Name = hand.Key, HandType = Enum.GetName(typeof(HandRank), hand.Value.Rank), Position = index + 1 }).ToList(); return(response); } catch (Exception ex) { return(new BadRequestObjectResult(ex.Message)); } }
public void ParseSingleCard(string test, CardRank expectedRank, CardSuit expectedSuit) { Card c = PokerhandApiParser.ParseSingleCard(test); Assert.AreEqual(expectedRank, c.Rank); Assert.AreEqual(expectedSuit, c.Suit); }
public void ParseHand() { List <string> cardStrings = new List <string>(new string[] { "3H", "KS", "JD", "4H", "2S" }); Hand hand = PokerhandApiParser.ConvertApiInputToPokerHands(cardStrings); // 3H Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.Three && x.Suit == CardSuit.Heart)); // KS Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.King && x.Suit == CardSuit.Spade)); // JD Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.Jack && x.Suit == CardSuit.Diamond)); // 4h Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.Four && x.Suit == CardSuit.Heart)); // 2S Assert.IsTrue(hand.Cards.Any((x) => x.Rank == CardRank.Two && x.Suit == CardSuit.Spade)); }
public void ParseCardSuit(string test, CardSuit expected) { Assert.AreEqual(expected, PokerhandApiParser.ParseCardSuit(test)); }