Пример #1
0
        /// <summary>
        /// Display latest <see cref="Post"/> objects in current space.
        /// </summary>
        /// <param name="app">The app</param>
        /// <param name="query">An object with query parameters for search, paging etc.</param>
        public override ActionResult Get(Posts app, Query query)
        {
            var model = new PostsViewModel();

            if (!IsEmbedded)
            {
                model.Members = SpaceService.GetMembers(WeavyContext.Current.Space.Id, new MemberQuery {
                    Top = 6, OrderBy = "Random", Count = true
                });
                model.ExternalMemberCount = SpaceService.GetMembers(WeavyContext.Current.Space.Id, new MemberQuery {
                    External = true, CountOnly = true
                }).TotalCount ?? 0;
                model.InviteCount = InviteService.Search(new InviteQuery()
                {
                    Top = 6, OrderBy = "Random", SpaceId = app.SpaceId, CountOnly = true
                }).TotalCount ?? 0;
            }

            query.Top   = PageSizes[0] / 5; // NOTE: reduced number of items/page for better perf.
            model.Posts = PostService.GetPosts(app.Id, opts: query);
            if (Request.IsAjaxRequest())
            {
                // infinite scroll, return partial view
                return(PartialView("_Posts", model.Posts));
            }

            // REVIEW: can we do this automagically?
            return(View(IsEmbedded ? "Get.Embedded": null, model));
        }