public IHttpActionResult GetForSurvey(int surveyId) { try { var retList = userSurveyService.GetForSurvey(surveyId).ToList(); var users = retList.Select(u => u.UserId).ToList(); var profiles = userSurveyService.GetUsers(users).ToList(); var survey = userSurveyService.GetSurvey(surveyId); var retVal = new UserSurveyViewModel() { SurveyId = survey.Id, SurveyName = survey.Name, Users = new List <UserWithEncrptIdViewModel>() }; profiles.ForEach(p => { if (!survey.Anonymous) { var objVM = new UserWithEncrptIdViewModel() { FirstName = p.FirstName, LastName = p.LastName, EncrptId = retList.FirstOrDefault(us => us.UserId == p.Id).EncrptUserId, UserId = p.Id }; retVal.Users.Add(objVM); } else { var objVM = new UserWithEncrptIdViewModel() { FirstName = profiles.IndexOf(p).ToString(), LastName = "************", EncrptId = retList.FirstOrDefault(us => us.UserId == p.Id).EncrptUserId, UserId = 0 }; retVal.Users.Add(objVM); } }); return(Ok(retVal)); } catch (Exception) { return(BadRequest()); } }
public IHttpActionResult GetQuestion(int id) { try { var identity = (ClaimsIdentity)User.Identity; var userId = int.Parse(identity.Claims.Where(c => c.Type == ClaimTypes.NameIdentifier).FirstOrDefault().Value); var question = questionService.GetQuestion(id); if (question == null) { return(BadRequest()); } var retList = questionService.GetForSurvey(question.SurveyId).ToList(); var users = retList.Select(u => u.UserId).ToList(); var profiles = questionService.GetUsers(users).ToList(); var questionResultVM = new QuestionResultViewModel() { Question = question, Users = new List <UserWithEncrptIdViewModel>() }; if (question.Survey.UserId != userId) { return(Unauthorized()); } profiles.ForEach(p => { var answers = new Dictionary <int, bool>(); if (!question.Survey.Anonymous) { var objVM = new UserWithEncrptIdViewModel() { FirstName = p.FirstName, LastName = p.LastName, EncrptId = retList.FirstOrDefault(us => us.UserId == p.Id).EncrptUserId, UserId = p.Id }; if (question.AnswerType != Model.Model.AnswerType.Text) { foreach (var questionAnswer in question.QuestionAnswers) { answers.Add(questionAnswer.Id, question.UserAnswers.Where(ua => ua.AnswerId == questionAnswer.Id).Select(ua => ua.UserId).Contains(p.Id)); } objVM.Answers = answers; } else { var userAnswer = question.UserAnswers.Where(ua => ua.UserId == p.Id).FirstOrDefault(); if (userAnswer == null) { objVM.AnswerText = "Nije odgovorio"; } else { objVM.AnswerText = userAnswer.Answer.AnswerText; } } questionResultVM.Users.Add(objVM); } else { var objVM = new UserWithEncrptIdViewModel() { FirstName = profiles.IndexOf(p).ToString(), LastName = "************", EncrptId = retList.FirstOrDefault(us => us.UserId == p.Id).EncrptUserId, UserId = 0 }; if (question.AnswerType != Model.Model.AnswerType.Text) { foreach (var questionAnswer in question.QuestionAnswers) { answers.Add(questionAnswer.Id, question.UserAnswers.Where(ua => ua.AnswerId == questionAnswer.Id).Select(ua => ua.UserId).Contains(p.Id)); } objVM.Answers = answers; } else { var userAnswer = question.UserAnswers.Where(ua => ua.UserId == p.Id).FirstOrDefault(); if (userAnswer == null) { objVM.AnswerText = "Nije odgovorio"; } else { objVM.AnswerText = userAnswer.Answer.AnswerText; } } questionResultVM.Users.Add(objVM); } }); return(Ok(questionResultVM)); } catch (Exception) { return(BadRequest()); } }