/// <summary> /// Action that handles both get and post requests to survey page /// </summary> /// <param name="form">collection of form properties</param> /// <param name="versions">list of values of selected checkboxes (version of android os)</param> /// <param name="emotions">selected emotion about the rom</param> /// <returns>view of survey page</returns> public ActionResult Survey(FormCollection form, List <string> versions, string emotions) { if (HttpContext.Request.HttpMethod == "GET") { ViewBag.Message = "Your contact page."; return(View(new List <IList <string> > { new List <string> { "2.3", "4.0", "4.2", "5.0", "6.0", "8.1", "10" }, new List <string> { "love", "don`t like", "hate" } })); } if (HttpContext.Request.HttpMethod == "POST") { var surv = new ViewSurvey(form["Name"], DateTime.Now, form["SurName"], versions, emotions); surveyService.AddSurvey(surv); return(View("Result", surv)); } return(View()); }
/// <summary> /// method to add a survey /// </summary> /// <param name="viewSurvey">survey</param> public void AddSurvey(ViewSurvey viewSurvey) { var survey = new Survey(viewSurvey.name, viewSurvey.date, viewSurvey.surname, viewSurvey.andVers, viewSurvey.emotions); surveyContext.AddSurvey(survey); }
public async Task <IActionResult> PostSurveyUser([FromBody] ViewSurvey viewSurvey) { var survey = await _context.Surveys.Include("Questions.ClosedAnswers") .Where(s => s.Id == viewSurvey.Id).FirstOrDefaultAsync <Survey>(); SurveyUser surveyUser = new SurveyUser { Survey = survey, UserId = 2 }; int count = 0; foreach (ViewQuestion i in viewSurvey.ViewQuestions) { string phrase = viewSurvey.ViewQuestions[count].name; string[] words = phrase.Split('-'); Console.WriteLine("Test1" + i); switch (i.QuestionType) { case 0: //open question surveyUser.Survey.Questions[int.Parse(words[0])].OpenAnswer.Response = i.value; break; case 1: //yes or no question bool response = false; if (i.value == "ja") { response = true; } surveyUser.Survey.Questions[int.Parse(words[0])].ClosedAnswers[0].Response = response; response = false; break; case 2: //yes or no question with open answers break; case 3: //multiple choice question surveyUser.Survey.Questions[int.Parse(words[0])].ClosedAnswers[int.Parse(words[2])].Response = true; break; } count++; } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (FilledSurvey(surveyUser)) { _context.SurveyUsers.Add(surveyUser); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (SurveyUserExists(surveyUser.SurveyId)) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } else { throw; } } } else { return(new StatusCodeResult(StatusCodes.Status400BadRequest)); } return(CreatedAtAction("GetSurveyUser", new { id = surveyUser.SurveyId }, surveyUser)); }