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