コード例 #1
0
        // GET: Session
        public ActionResult Index()
        {
            // If session exists, redirect to Solve
            if (Session[sessionKey] != null)
            {
                return(RedirectToAction("Solve"));
            }
            // Otherwise, offer a choice to create one
            UserChoicesViewModel model = GetSessionViewModel();

            return(View(model));
        }
コード例 #2
0
        public ActionResult Index(UserChoicesViewModel model)
        {
            if (model.UczonyJezykId == model.ZnanyJezykId)
            {
                var newModel = GetSessionViewModel();
                newModel.ZnanyJezykId  = model.ZnanyJezykId;
                newModel.UczonyJezykId = model.UczonyJezykId;

                ModelState.AddModelError("JezykUczony", "Język który znasz i którego się uczysz muszą być różne");
                return(View(newModel));
            }

            if (ModelState.IsValid)
            {
                model.UczonyJezyk = _uow.JezykRepo.Get(model.UczonyJezykId);
                model.ZnanyJezyk  = _uow.JezykRepo.Get(model.ZnanyJezykId);

                IBudowniczySesji budowniczySesji;
                switch (model.WybranyInput)
                {
                case RodzajInputu.Select:
                    budowniczySesji = new BudowniczySesjiZWyborem(_uow.SlowoRepo);
                    break;

                case RodzajInputu.TextInput:
                    budowniczySesji = new BudowniczySesjiZInputem(_uow.SlowoRepo);
                    break;

                default:
                    throw new ArgumentException($"Brak ustalonego budowniczego dla {model.WybranyInput}");
                }
                budowniczySesji.Reset();
                _director.Akceptuj(budowniczySesji);
                _director.Stworz(model);
                Sesja sesja = budowniczySesji.BudowanaSesja;
                sesja.Uzytkownik = _uow.UserRepo.Get(User.Identity.GetUserId());

                Session[sessionKey]         = sesja;
                Session[iteratorKey]        = sesja.GetIterator();
                Session[currentQuestionKey] = 1;
                Session[questionCountKey]   = sesja.Pytania.Count;

                return(RedirectToAction("Solve"));
            }
            return(View(model));
        }
コード例 #3
0
        private UserChoicesViewModel GetSessionViewModel()
        {
            var user  = UserManager.FindById(User.Identity.GetUserId());
            var model = new UserChoicesViewModel()
            {
                Jezyki = GetJezyki()
            };

            if (user.PrefferedMode == TrybWybieraniaSesji.Automatyczny)
            {
                model.CanEditLevel = false;
                model.SetLevel(user.Progress);
            }
            else
            {
                model.CanEditLevel = true;
            }

            return(model);
        }
コード例 #4
0
        public void Stworz(UserChoicesViewModel userChoices)
        {
            budowniczySesji.UstawJezykUczony(userChoices.UczonyJezyk);
            budowniczySesji.UstawJezykZnany(userChoices.ZnanyJezyk);
            switch (userChoices.SessionType)
            {
            case TypSesji.Nauka:
                budowniczySesji.UstawStrategieNauka();
                break;

            case TypSesji.Test:
                budowniczySesji.UstawStrategieTest();
                break;

            default:
                throw new ArgumentException($"Nieznany rodzaj sesji {userChoices.SessionType}");
            }
            switch (userChoices.Lvl)
            {
            case Poziom.Latwy:
                budowniczySesji.UstawLatwyZestaw();
                break;

            case Poziom.Sredni:
                budowniczySesji.UstawSredniZestaw();
                break;

            case Poziom.Trudny:
                budowniczySesji.UstawTrudnyZestaw();
                break;

            case Poziom.BardzoTrudny:
                budowniczySesji.UstawBardzoTrudnyZestaw();
                break;

            default:
                throw new ArgumentException($"Brak ustalonego zachowania dla poziomu {userChoices.Lvl}");
            }
        }
コード例 #5
0
 public ActionResult Index(UserChoicesViewModel viewModel)
 {
     return(RedirectToAction("Test"));
 }