/// <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)); }