public ActionResult Results(int id, Guid? publicGuid)
{
var surveyResponse = _surveyResponseRepository.GetNullableById(id);
if (string.IsNullOrWhiteSpace(CurrentUser.Identity.Name))
{
surveyResponse = (SurveyResponse)Session[publicGuid.ToString()];
}
if (surveyResponse == null)
{
Message = "Not Found";
return this.RedirectToAction<ErrorController>(a => a.Index());
}
if (!CurrentUser.IsInRole(RoleNames.Admin))
{
if (!string.IsNullOrWhiteSpace(CurrentUser.Identity.Name))
{
if (surveyResponse.UserId.ToLower() != CurrentUser.Identity.Name.ToLower())
{
Message = "Not your survey";
return this.RedirectToAction<ErrorController>(a => a.NotAuthorized());
}
}
else
{
if (surveyResponse.UserId.ToLower() != publicGuid.ToString().ToLower())
{
Message = "Not your survey";
return this.RedirectToAction<ErrorController>(a => a.NotAuthorized());
}
}
}
var viewModel = ResultsViewModel.Create(surveyResponse, false);
viewModel.PublicGuid = publicGuid;
//if (CurrentUser.IsInRole(RoleNames.Admin) || CurrentUser.IsInRole(RoleNames.User))
//{
viewModel.ShowPdfPrint = true;
//}
return View(viewModel);
}