public static SurveyResponseDetailViewModel Create(IRepository repository, Survey survey, DateTime? beginDate, DateTime? endDate)
{
Check.Require(repository != null, "Repository must be supplied");
Check.Require(survey != null, "Survey must be supplied");
var viewModel = new SurveyResponseDetailViewModel { Survey = survey, FilterBeginDate = beginDate, FilterEndDate = endDate};
viewModel.SurveyResponses = viewModel.Survey.SurveyResponses.AsQueryable().Where(a => !a.IsPending);
viewModel.HasPendingResponses = viewModel.Survey.SurveyResponses.Where(a => a.IsPending).Any();
if (beginDate != null)
{
beginDate = beginDate.Value.Date;
viewModel.SurveyResponses = viewModel.SurveyResponses.Where(a => a.DateTaken >= beginDate);
}
if (endDate != null)
{
endDate = endDate.Value.Date.AddDays(1).AddMinutes(-1);
viewModel.SurveyResponses = viewModel.SurveyResponses.Where(a => a.DateTaken <= endDate);
}
return viewModel;
}