コード例 #1
0
ファイル: UsersController.cs プロジェクト: ilmen/AliasGame
        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);
            }
        }
コード例 #2
0
ファイル: GameController.cs プロジェクト: ilmen/AliasGame
 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);
 }
コード例 #3
0
ファイル: CardsController.cs プロジェクト: ilmen/AliasGame
        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);
        }
コード例 #4
0
ファイル: CardStorageFactory.cs プロジェクト: ilmen/AliasGame
        public CardStorage GetCardStorage()
        {
            var wordFact = new WordFactory();

            var shuffler = new Shuffler<string>();
            var cutter = new Cutter<string>();
            var cardFact = new CardFactory(10, shuffler, cutter);

            var words = wordFact.GetAllWords();
            var cards = cardFact.GetCards(words);

            return new CardStorage(words, cards);
        }