/// <summary> /// Prepare paged poll answer list model /// </summary> /// <param name="searchModel">Poll answer search model</param> /// <param name="poll">Poll</param> /// <returns>Poll answer list model</returns> public virtual PollAnswerListModel PreparePollAnswerListModel(PollAnswerSearchModel searchModel, Poll poll) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (poll == null) { throw new ArgumentNullException(nameof(poll)); } //get poll answers var pollAnswers = poll.PollAnswers.OrderBy(pollAnswer => pollAnswer.DisplayOrder).ToList(); //prepare list model var model = new PollAnswerListModel { //fill in model values from the entity Data = pollAnswers.PaginationByRequestModel(searchModel).Select(pollAnswer => new PollAnswerModel { Id = pollAnswer.Id, PollId = pollAnswer.PollId, Name = pollAnswer.Name, NumberOfVotes = pollAnswer.NumberOfVotes, DisplayOrder = pollAnswer.DisplayOrder }), Total = pollAnswers.Count }; return(model); }
/// <summary> /// Search poll answers /// </summary> /// <param name="model"></param> /// <returns></returns> private IQueryable <PollAnswer> SearchPollAnswers(PollAnswerSearchModel model) { return(Fetch(pollAnswer => (string.IsNullOrEmpty(model.Keyword) || (!string.IsNullOrEmpty(pollAnswer.AnswerText) && pollAnswer.AnswerText.Contains(model.Keyword))) && (!model.PollId.HasValue || pollAnswer.PollId == model.PollId))); }
/// <summary> /// Search the poll answers /// </summary> /// <param name="si"></param> /// <param name="model"></param> /// <returns></returns> public JqGridSearchOut SearchPollAnswers(JqSearchIn si, PollAnswerSearchModel model) { var data = SearchPollAnswers(model); var pollAnswers = Maps(data); return(si.Search(pollAnswers)); }
/// <summary> /// Export poll answers /// </summary> /// <param name="si"></param> /// <param name="gridExportMode"></param> /// <param name="model"></param> /// <returns></returns> public HSSFWorkbook Exports(JqSearchIn si, GridExportMode gridExportMode, PollAnswerSearchModel model) { var data = gridExportMode == GridExportMode.All ? GetAll() : SearchPollAnswers(model); var pollAnswers = Maps(data); var exportData = si.Export(pollAnswers, gridExportMode); return(ExcelUtilities.CreateWorkBook(exportData)); }
/// <summary> /// Export poll answers /// </summary> /// <param name="si"></param> /// <param name="gridExportMode"></param> /// <param name="model"></param> /// <returns></returns> public ActionResult Exports(JqSearchIn si, GridExportMode gridExportMode, PollAnswerSearchModel model) { var workbook = _pollAnswerService.Exports(si, gridExportMode, model); var output = new MemoryStream(); workbook.Write(output); return(File(output.ToArray(), "application/vnd.ms-excel", "PollAnswers.xls")); }
public virtual IActionResult PollAnswers(PollAnswerSearchModel searchModel) { //try to get a poll with the specified id Poll poll = _pollService.GetPollById(searchModel.PollId) ?? throw new ArgumentException("No poll found with the specified id"); //prepare model PollAnswerListModel model = _pollModelFactory.PreparePollAnswerListModel(searchModel, poll); return(Json(model)); }
public virtual IActionResult PollAnswers(PollAnswerSearchModel searchModel) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePolls)) { return(AccessDeniedDataTablesJson()); } //try to get a poll with the specified id var poll = _pollService.GetPollById(searchModel.PollId) ?? throw new ArgumentException("No poll found with the specified id"); //prepare model var model = _pollModelFactory.PreparePollAnswerListModel(searchModel, poll); return(Json(model)); }
/// <summary> /// Prepare poll answer search model /// </summary> /// <param name="searchModel">Poll answer search model</param> /// <param name="poll">Poll</param> /// <returns>Poll answer search model</returns> protected virtual PollAnswerSearchModel PreparePollAnswerSearchModel(PollAnswerSearchModel searchModel, Poll poll) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (poll == null) { throw new ArgumentNullException(nameof(poll)); } searchModel.PollId = poll.Id; //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }
/// <summary> /// Prepare paged poll answer list model /// </summary> /// <param name="searchModel">Poll answer search model</param> /// <param name="poll">Poll</param> /// <returns>Poll answer list model</returns> public virtual PollAnswerListModel PreparePollAnswerListModel(PollAnswerSearchModel searchModel, Poll poll) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (poll == null) { throw new ArgumentNullException(nameof(poll)); } //get poll answers var pollAnswers = _pollService.GetPollAnswerByPoll(poll.Id, searchModel.Page - 1, searchModel.PageSize); //prepare list model var model = new PollAnswerListModel().PrepareToGrid(searchModel, pollAnswers, () => pollAnswers.Select(pollAnswer => pollAnswer.ToModel <PollAnswerModel>())); return(model); }
/// <summary> /// Prepare paged poll answer list model /// </summary> /// <param name="searchModel">Poll answer search model</param> /// <param name="poll">Poll</param> /// <returns>Poll answer list model</returns> public virtual PollAnswerListModel PreparePollAnswerListModel(PollAnswerSearchModel searchModel, Poll poll) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (poll == null) { throw new ArgumentNullException(nameof(poll)); } //get poll answers var pollAnswers = poll.PollAnswers.OrderBy(pollAnswer => pollAnswer.DisplayOrder).ToList().ToPagedList(searchModel); //prepare list model var model = new PollAnswerListModel().PrepareToGrid(searchModel, pollAnswers, () => pollAnswers.Select(pollAnswer => pollAnswer.ToModel <PollAnswerModel>())); return(model); }
public string _AjaxBinding(JqSearchIn si, PollAnswerSearchModel model) { return(JsonConvert.SerializeObject(_pollAnswerService.SearchPollAnswers(si, model))); }
public ActionResult Index() { var model = new PollAnswerSearchModel(); return(View(model)); }