/// <summary> /// Prepare paged forum list model /// </summary> /// <param name="searchModel">Forum search model</param> /// <param name="forumGroup">Forum group</param> /// <returns> /// A task that represents the asynchronous operation /// The task result contains the forum list model /// </returns> public virtual async Task <ForumListModel> PrepareForumListModelAsync(ForumSearchModel searchModel, ForumGroup forumGroup) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (forumGroup == null) { throw new ArgumentNullException(nameof(forumGroup)); } //get forums var forums = (await _forumService.GetAllForumsByGroupIdAsync(forumGroup.Id)).ToPagedList(searchModel); //prepare list model var model = await new ForumListModel().PrepareToGridAsync(searchModel, forums, () => { return(forums.SelectAwait(async forum => { //fill in model values from the entity var forumModel = forum.ToModel <ForumModel>(); //convert dates to the user time forumModel.CreatedOn = await _dateTimeHelper.ConvertToUserTimeAsync(forum.CreatedOnUtc, DateTimeKind.Utc); return forumModel; })); }); return(model); }
/// <summary> /// Prepare paged forum list model /// </summary> /// <param name="searchModel">Forum search model</param> /// <param name="forumGroup">Forum group</param> /// <returns>Forum list model</returns> public virtual ForumListModel PrepareForumListModel(ForumSearchModel searchModel, ForumGroup forumGroup) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (forumGroup == null) { throw new ArgumentNullException(nameof(forumGroup)); } //get forums var forums = forumGroup.Forums; //prepare list model var model = new ForumListModel { Data = forums.PaginationByRequestModel(searchModel).Select(forum => { //fill in model values from the entity var forumModel = forum.ToModel <ForumModel>(); //convert dates to the user time forumModel.CreatedOn = _dateTimeHelper.ConvertToUserTime(forum.CreatedOnUtc, DateTimeKind.Utc); return(forumModel); }), Total = forums.Count }; return(model); }
/// <summary> /// Prepare paged forum list model /// </summary> /// <param name="searchModel">Forum search model</param> /// <param name="forumGroup">Forum group</param> /// <returns>Forum list model</returns> public virtual ForumListModel PrepareForumListModel(ForumSearchModel searchModel, ForumGroup forumGroup) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (forumGroup == null) { throw new ArgumentNullException(nameof(forumGroup)); } //get forums var forums = forumGroup.Forums.ToList().ToPagedList(searchModel); //prepare list model var model = new ForumListModel().PrepareToGrid(searchModel, forums, () => { return(forums.Select(forum => { //fill in model values from the entity var forumModel = forum.ToModel <ForumModel>(); //convert dates to the user time forumModel.CreatedOn = _dateTimeHelper.ConvertToUserTime(forum.CreatedOnUtc, DateTimeKind.Utc); return forumModel; })); }); return(model); }
/// <summary> /// Prepare forum search model /// </summary> /// <param name="searchModel">Forum search model</param> /// <returns>Forum search model</returns> protected virtual ForumSearchModel PrepareForumSearchModel(ForumSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }
public virtual async Task<IActionResult> ForumList(ForumSearchModel searchModel) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageForums)) return await AccessDeniedDataTablesJson(); //try to get a forum group with the specified id var forumGroup = await _forumService.GetForumGroupByIdAsync(searchModel.ForumGroupId) ?? throw new ArgumentException("No forum group found with the specified id"); //prepare model var model = await _forumModelFactory.PrepareForumListModelAsync(searchModel, forumGroup); return Json(model); }
public virtual IActionResult ForumList(ForumSearchModel searchModel) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageForums)) { return(AccessDeniedKendoGridJson()); } //try to get a forum group with the specified id var forumGroup = _forumService.GetForumGroupById(searchModel.ForumGroupId) ?? throw new ArgumentException("No forum group found with the specified id"); //prepare model var model = _forumModelFactory.PrepareForumListModel(searchModel, forumGroup); return(Json(model)); }