public async Task <ActionResult <SurveyResultsDto> > GetSurveyResult(int id) { var survey = await _context.Surveys.Include(x => x.Questions) .ThenInclude(x => x.Answers).ThenInclude(x => x.SurveyResponse).ThenInclude(x => x.Respondent) .FirstAsync(x => x.Id == id); var result = new SurveyResultsDto { SurveyName = survey.Name, Anonymous = survey.Anonymous, SurveyId = survey.Id.Value, QuestionResults = survey.Questions.Select(q => new QuestionResultsDto { QuestionId = q.Id.Value, QuestionIndex = q.Index, QuestionType = q.QuestionType, QuestionText = q.QuestionText, QuestionAnswers = q.Answers.Select(a => SelectQuestionAnswer(survey, q, a)).ToList(), AnswerPercentages = CalculateAnswerPercentages(q).OrderByDescending(z => z.Value).ToList(), Statistics = CalculateStatistics(q) }).ToList() }; return(result); }
[System.Web.Http.HttpPost] // Since we are creating a resource we use HttpPost public IHttpActionResult CreateSurveyResults(SurveyResultsDto surveyResultsDto) { if (!ModelState.IsValid) { return(BadRequest()); } var surveyResults = Mapper.Map <SurveyResultsDto, SurveyResults>(surveyResultsDto); _context.SurveyResultsSet.Add(surveyResults); _context.SaveChanges(); surveyResultsDto.Id = surveyResults.Id; return(Created(new Uri(Request.RequestUri + "/" + surveyResults.Id), surveyResultsDto)); }
public IHttpActionResult UpdateSurveyResults(int id, SurveyResultsDto surveyResultsDto) { if (!ModelState.IsValid) { return(BadRequest()); } var surveyResultsInDb = _context.SurveyResultsSet.SingleOrDefault(c => c.Id == id); if (surveyResultsInDb == null) { return(NotFound()); } Mapper.Map(surveyResultsDto, surveyResultsInDb); _context.SaveChanges(); return(Ok()); }
public static SurveyResultChartsViewModel Map(this SurveyResultsDto pieDataResult, IStringLocalizer <SurveyResultsController> localizer) { return(new SurveyResultChartsViewModel { JuniorData = new LangaugeSeniorityLevelChartViewModel { Title = localizer[ResourceKeys.JuniorChartTitle], PieSeries = pieDataResult.JuniorPieData, Type = SeniorityLevel.Junior.ToString() }, MidData = new LangaugeSeniorityLevelChartViewModel { Title = localizer[ResourceKeys.MidChartTitle], PieSeries = pieDataResult.MidPieData, Type = SeniorityLevel.Mid.ToString() }, SeniorData = new LangaugeSeniorityLevelChartViewModel { Title = localizer[ResourceKeys.SeniorChartTitle], PieSeries = pieDataResult.SeniorPieData, Type = SeniorityLevel.Senior.ToString() } }); }