示例#1
0
        public JsonResult AddCardToDeck(string name, string cardId)
        {
            var deck = DeckBuilderService.GetDeck(name);

            if (deck == null)
            {
                return(Json(new DeckBuilderAddCardJsonResult
                {
                    Success = false,
                    ErrorMessage = "Could not find deck"
                }, JsonRequestBehavior.AllowGet));
            }

            CardModel cardModel;

            try
            {
                cardModel = DeckBuilderService.AddCardToDeck(name, cardId);
            }
            catch (InvalidOperationException e)
            {
                return(Json(new DeckBuilderAddCardJsonResult
                {
                    Success = false,
                    ErrorMessage = e.Message
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new DeckBuilderAddCardJsonResult
            {
                Success = true,
                CardId = cardModel.Id,
                CardName = cardModel.Name
            }, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        public ActionResult Index()
        {
            var viewModel = new DeckBuilderBrowseViewModel
            {
                Decks  = DeckBuilderService.GetAllDecks(),
                Heroes = CardSearchService.GetHeroes()
            };

            return(View(viewModel));
        }
示例#3
0
        public ActionResult Create(string id, string name)
        {
            var deck = DeckBuilderService.CreateDeck(name, id);

            if (deck == null)
            {
                TempData["Error"] = "Deck could not be created, please try again.";
                return(RedirectToAction("Create", new { id }));
            }

            return(RedirectToAction("ViewDeck", new { name = deck.Name }));
        }
示例#4
0
        public JsonResult RemoveCardFromDeck(string name, string cardId)
        {
            var deck = DeckBuilderService.GetDeck(name);

            if (deck == null)
            {
                return(Json(new DeckBuilderAddCardJsonResult
                {
                    Success = false,
                    ErrorMessage = "Could not find deck"
                }, JsonRequestBehavior.AllowGet));
            }

            DeckBuilderService.RemoveCardFromDeck(name, cardId);

            return(Json(new DeckBuilderAddCardJsonResult
            {
                Success = true
            }, JsonRequestBehavior.AllowGet));
        }
示例#5
0
        public ActionResult ViewDeck(string name)
        {
            var deck = DeckBuilderService.GetDeck(name);

            if (deck == null)
            {
                return(RedirectToAction("Index"));
            }

            var availableCards = new List <CardModel>();

            availableCards.AddRange(CardSearchService.Search("", deck.HeroModel.PlayerClassText));
            availableCards.AddRange(CardSearchService.Search("", "Neutral"));
            availableCards.RemoveAll(x => x.Type == "Hero");

            var viewModel = new DeckBuilderEditViewModel
            {
                Deck           = deck,
                AvailableCards = availableCards
            };

            return(View(viewModel));
        }
示例#6
0
 public MyDecksController()
 {
     DeckBuilderService = new DeckBuilderService(MvcApplication.CardCache);
     CardSearchService  = new CardSearchService(MvcApplication.CardCache);
 }