public ActionResult Index(GameParameters parameters) { var model = new IndexViewModel { Parameters = parameters }; if (model.IsValid()) { var game = new GameGenerator(); var gameGeneratorParameters = MapGameParametersToGameGeneratorParameters(parameters); var cards = game.GetGameCards(gameGeneratorParameters); switch (parameters.SortBy) { case "Cost": model.Cards = cards.OrderBy(x => x.Cost).ToList(); break; case "Name": model.Cards = cards.OrderBy(x => x.Name).ToList(); break; case "Set": model.Cards = cards.OrderBy(x => x.Set).ToList(); break; default: model.Cards = cards.ToList(); break; } } return View(model); }
public ActionResult Index(GameParameters parameters) { var model = new IndexViewModel { Parameters = parameters }; if (model.IsValid()) { var game = new GameGenerator(); var gameGeneratorParameters = MapGameParametersToGameGeneratorParameters(parameters); var cards = game.GetGameCards(gameGeneratorParameters); switch (parameters.SortBy) { case "Cost": model.Cards = cards.OrderBy(x => x.Cost).ToList(); break; case "Name": model.Cards = cards.OrderBy(x => x.Name).ToList(); break; case "Set": model.Cards = cards.OrderBy(x => x.Set).ToList(); break; default: model.Cards = cards.ToList(); break; } } return(View(model)); }
public void Pick10RandomCardsWithNoRules() { var game = new GameGenerator(); var parameters = (GameGeneratorParameters.GetInstance()); parameters.FindSet("Dominion").IsSet = true; parameters.FindSet("Intrigue").IsSet = true; var cards = game.GetGameCards(parameters); Assert.AreEqual(10, cards.Count); }
public void Pick10RandomCardsThatRequiresTwoToFiveCostCards() { var game = new GameGenerator(); var parameters = GameGeneratorParameters.GetInstance(); parameters.FindSet("Dominion").IsSet = true; parameters.FindRule("RequireTwoToFiveCostCards").IsSet = true; var cards = game.GetGameCards(parameters); Assert.IsTrue(cards.Where(x => x.Cost == 2).Count() >= 1); Assert.IsTrue(cards.Where(x => x.Cost == 3).Count() >= 1); Assert.IsTrue(cards.Where(x => x.Cost == 4).Count() >= 1); Assert.IsTrue(cards.Where(x => x.Cost == 5).Count() >= 1); }
public void Pick10RandomCardsThatRequireAReactionCardIfAttackCardPresent() { var game = new GameGenerator(); var parameters = GameGeneratorParameters.GetInstance(); parameters.FindSet("Dominion").IsSet = true; parameters.FindRule("RequireReactionToAttack").IsSet = true; var cards = game.GetGameCards(parameters); if (cards.Where(x => x.Type == CardType.Attack).Count() > 0) Assert.IsTrue(cards.Where(x => x.Type == CardType.Reaction).Count() > 0); else Assert.IsTrue(cards.Where(x => x.Type == CardType.Attack).Count() == 0); }
public void Pick10RandomCardsWithTwoToFiveCostAndRequireReactionIfAttackCardPresent() { var game = new GameGenerator(); var parameters = GameGeneratorParameters.GetInstance(); parameters.FindSet("Dominion").IsSet = true; parameters.FindRule("RequireTwoToFiveCostCards").IsSet = true; parameters.FindRule("RequireReactionToAttack").IsSet = true; var cards = game.GetGameCards(parameters); if (cards.Where(x => x.Type == CardType.Attack).Count() > 0) Assert.IsTrue(cards.Where(x => x.Type == CardType.Reaction).Count() > 0); else Assert.IsTrue(cards.Where(x => x.Type == CardType.Attack).Count() == 0); Assert.IsTrue(cards.Where(x => x.Cost == 2).Count() >= 1); Assert.IsTrue(cards.Where(x => x.Cost == 3).Count() >= 1); Assert.IsTrue(cards.Where(x => x.Cost == 4).Count() >= 1); Assert.IsTrue(cards.Where(x => x.Cost == 5).Count() >= 1); }