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
        // GET: Home
        public ActionResult Index()
        {
            var repos = new UserContextRepository();
            var ucList = repos.GetAll();
            var vm = new IndexPageVM(ucList);

            return View(vm);
        }
Ejemplo n.º 3
0
        public ActionResult Logon()
        {
            var data = GetUserData();

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

            var provider = new UserContextRepository();
            var uc = provider.Get(data.UserUid);
            if (uc == null) return new HttpStatusCodeResult(HttpStatusCode.Unauthorized, "Неверные параметры входа! Пользователь не найден!");

            AddToSession(uc);

            return RedirectToGamePage();
        }