示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#4
0
        /// <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);
        }
示例#5
0
        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);
        }
示例#6
0
        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));
        }