Ejemplo n.º 1
0
        public ActionResult Create()
        {
            var data = GetUserData();   // TODO: переход по ссылке [localhost] + "чтото" в умной строке адреса у яндекс браузера создает нового пользователя "чтото"

            if (!data.IsNewUser())
            {
                return Logon();    // TODO: передавать контекст-объект
            }

            try
            {
                data.IsValid().ThrowArgExceptionIfNotValid();

                var provider = new UserContextRepository();
                var wordProvider = new WordFactory();
                var cardSizeProvider = new CardSizeProvider();
                var cardProvider = new CardFactory(cardSizeProvider.GetCardSize(), new Shuffler<string>(), new Cutter<string>());
                var cardCount = cardProvider.GetCards(wordProvider.GetAllWords()).Length;

                // TODO: уйти от запросов постоянных, просто кешировать слова, выделить слова и карточки все в один класс, в синглтон

                var newUC = provider.Create(Guid.NewGuid(), data.UserName, cardCount);
                provider.Add(newUC);
                AddToSession(newUC);

                return RedirectToGamePage();
            }
            catch (ArgumentException aex)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest, aex.Message);
            }
        }
Ejemplo n.º 2
0
 private Card GetCard(int cardIndex)
 {
     var words = GetWords();
     var cardSizeProvider = new CardSizeProvider();
     var provider = new CardFactory(cardSizeProvider.GetCardSize(), new Shuffler<string>(), new Cutter<string>());
     return provider.GetCards(words)
         .FirstOrDefault(x => x.Index == cardIndex);
 }
Ejemplo n.º 3
0
        static CardsController()
        {
            var wordProvider = new WordFactory();
            var words = wordProvider.GetAllWords();
            var sizeProvider = new CardSizeProvider();

            var cardProvider = new CardFactory(sizeProvider.GetCardSize(), new Shuffler<string>(), new Cutter<string>());
            cards = cardProvider.GetCards(words);
        }
Ejemplo n.º 4
0
        // GET: Game
        public ActionResult Index()
        {
            var uc = ReadUserContextFromSession();
            if (uc == null) return new HttpStatusCodeResult(HttpStatusCode.Unauthorized);

            var cardSizeProvider = new CardSizeProvider();
            var cardIndex = GetNextCardIndex(uc);

            var card = GetCard(cardIndex);

            var vm = new GameVM()
            {
                Context = uc,
                CurrentCard = card
            };

            return View(vm);
        }