public async Task <ActionResult> Edit([Bind(Include = "ID,Question,QuestionWeight,CreatedDate,isDeleted,TimeStamp,OrganizationID,UserId")] SelectionQuestion selectionQuestion)
        {
            if (ModelState.IsValid)
            {
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(baseurl);
                    client.DefaultRequestHeaders.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
                    HttpResponseMessage Res = await client.PutAsJsonAsync($"api/SelectionQuestions/{selectionQuestion.ID}", selectionQuestion);

                    if (Res.IsSuccessStatusCode)
                    {
                        this.AddNotification("SelectionQuestions information modified successfully", NotificationType.SUCCESS);
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        this.AddNotification("SelectionQuestions information cannot be modified at this time. Please contact Administrator", NotificationType.ERROR);
                        return(View());
                    }
                }
            }

            ViewBag.OrganizationID = await OrganizationSelectListByModel(token, selectionQuestion.OrganizationID);

            return(View(selectionQuestion));
        }
        public async Task <ActionResult> Details(int?id)
        {
            #region USERVALIDATION
            token = (string)(Session["accessToken"]);
            string userID = (string)(Session["UserID"]);
            #endregion
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            List <SelectionQuestion> selectionQuestion = new List <SelectionQuestion>();


            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(baseurl);
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
                HttpResponseMessage Res = await client.GetAsync($"api/SelectionQuestions/{id}");

                if (Res.IsSuccessStatusCode)
                {
                    var SelectionQuestionResponse         = Res.Content.ReadAsStringAsync().Result;
                    SelectionQuestion mySelectionQuestion = JsonConvert.DeserializeObject <SelectionQuestion>(SelectionQuestionResponse);
                    return(View(mySelectionQuestion));
                }
                else
                {
                    this.AddNotification("Unable to display SelectionQuestions information,please contact Administrator" + Res, NotificationType.ERROR);
                    return(View());
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Evaluates a question with a valid random value for each variable.
        /// </summary>
        /// <param name="question">Question to be evaluated.</param>
        /// <returns>The evaluated question.</returns>
        public Question Evaluate(Question question)
        {
            var selectionQuestion = question as SelectionQuestion;

            if (selectionQuestion != null)
            {
                SelectionQuestion aux = new SelectionQuestion
                {
                    Description = selectionQuestion.Description,
                    ExamId      = selectionQuestion.ExamId,
                    Options     = selectionQuestion.Options,
                    Answers     = selectionQuestion.Answers,
                    Exam        = selectionQuestion.Exam,
                    Id          = selectionQuestion.Id,
                    Variables   = selectionQuestion.Variables
                };

                // Evaluate each variable
                foreach (var variable in aux.Variables)
                {
                    var value = variable.RandomValue();

                    aux.Description = aux.Description.Replace("%" + variable.Symbol, value.ToString());

                    foreach (var option in aux.Options)
                    {
                        option.Description = option.Description.Replace("%" + variable.Symbol, value.ToString());
                    }
                }

                aux.Description = EvaluatePart(aux.Description);

                foreach (var option in aux.Options)
                {
                    option.Description = EvaluatePart(option.Description);
                }

                return(aux);
            }

            return(null);
        }
        public async Task <ActionResult> Create([Bind(Include = "ID,Question,QuestionWeight,CreatedDate,isDeleted,TimeStamp,OrganizationID,UserId")] SelectionQuestion selectionQuestion)
        {
            #region USERVALIDATION
            token = (string)(Session["accessToken"]);
            string userID = (string)(Session["UserID"]);
            #endregion
            if (ModelState.IsValid)
            {
                selectionQuestion.CreatedDate = DateTime.Now;
                selectionQuestion.isDeleted   = false;
                selectionQuestion.TimeStamp   = DateTime.Now;

                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(baseurl);
                    client.DefaultRequestHeaders.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

                    HttpResponseMessage Res = await client.PostAsJsonAsync("api/SelectionQuestions", selectionQuestion);

                    if (Res.IsSuccessStatusCode)
                    {
                        this.AddNotification("SelectionQuestion created successfully", NotificationType.SUCCESS);
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        this.AddNotification("SelectionQuestion cannot be created at this time. Please contact Administrator" + Res, NotificationType.ERROR);
                        return(View());
                    }
                }
            }
            ViewBag.OrganizationID = await OrganizationSelectListByModel(token, selectionQuestion.OrganizationID);

            return(View(selectionQuestion));
        }