Exemplo n.º 1
0
        public ActionResult SubmitTutorialAnswers(NegotiationTutorialModel model)
        {
            if (model == null || model.TutorialId == null)
            {
                return(RedirectToAction("Negotiation"));
            }

            if (!model.Questions.Select(x => x.Answer).SequenceEqual(NegotiationManager.TutorialModels[model.TutorialId].Questions.Select(x => x.ActualAnswer)))
            {
                ModelState.AddModelError("Wrong answer", "One or more answers was wrong.");
                return(View("NegotiationTutorial", NegotiationManager.TutorialModels[model.TutorialId]));
            }

            NegotiationTutorialModel temp;

            NegotiationManager.TutorialModels.TryRemove(model.TutorialId, out temp);

            NegotiationEngine engine = NegotiationManager.OnGoingNegotiations[model.TutorialId];

            NegotiationViewModel newModel = new NegotiationViewModel
            {
                Id            = model.TutorialId,
                AiSide        = engine.AiConfig.Side,
                HumanConfig   = engine.HumanConfig,
                RemainingTime = TimeSpan.FromSeconds(engine.Domain.NumberOfRounds * engine.Domain.RoundLength.TotalSeconds),
                Domain        = engine.Domain,
                Actions       = new List <NegotiationActionModel>()
            };

            engine.BeginNegotiation();

            return(RedirectToAction("Negotiation", new { negotiationId = model.TutorialId }));
        }
Exemplo n.º 2
0
        public ActionResult NegotiationTutorial(NegotiationTutorialModel model)
        {
            if (model == null || model.TutorialId == null)
            {
                return(RedirectToAction("Negotiation"));
            }

            return(View("NegotiationTutorial", model));
        }
Exemplo n.º 3
0
        public ActionResult SubmitUserData(PreNegotiationQuestionnaireViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("PreNegotiationQuestionnaire", model));
            }

            if (!model.AgreeIRB)
            {
                ModelState.AddModelError("AgreeIRB", "Please agree to the IRB form");
                return(View("PreNegotiationQuestionnaire", model));
            }

            String id = CreateNewNegotiation(model);

            NegotiationTutorialModel tutModel = CreateTutorialModel(id);

            NegotiationManager.TutorialModels.TryAdd(id, tutModel);

            return(NegotiationTutorial(tutModel));
        }