public async Task <IActionResult> Following(int page = 1, string search = null) { var userId = this.User.GetId(); var skip = (page - 1) * PostsPerPage; var count = await this.postsService.GetFollowingCountAsync(userId); var posts = await this.postsService.GetAllFollowingByUserIdAsync <PostsListingViewModel>( userId, search, skip, PostsPerPage); foreach (var post in posts) { post.Activity = await this.postsService.GetLatestActivityByIdAsync(post.Id); post.Tags = await this.tagsService.GetAllByPostIdAsync <PostsTagsDetailsViewModel>(post.Id); } var viewModel = new PostsAllViewModel { Posts = posts, PageIndex = page, TotalPages = (int)Math.Ceiling(count / (decimal)PostsPerPage), FollowingCount = await this.usersService.GetFollowingCountAsync(userId) }; return(this.View(viewModel)); }
public IActionResult Index() { var viewModel = new PostsAllViewModel() { Posts = this.wallPostsService.GetAll <PostsSingleViewModel>(), }; return(this.View(viewModel)); }
public async Task <IActionResult> ByUser(string username, int page = 1) { var user = await this.userManager.Users.FirstOrDefaultAsync(x => x.UserName == username); if (user == null) { return(this.RedirectToAction("All")); } var userId = await this.userManager.GetUserIdAsync(user); var postsCount = await this.postService.GetCountByUserAsync(userId); var pagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage); if (page > pagesCount) { page = pagesCount; } if (page <= 0) { page = 1; } var posts = await this.postService .GetByUserAsync <PostViewModel>(userId, GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage); var result = new PostsAllViewModel { Posts = posts, PagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage), }; if (result.PagesCount == 0) { result.PagesCount = 1; } if (page > result.PagesCount) { page = result.PagesCount; } result.CurrentPage = page; return(this.View(result)); }
public async Task <IViewComponentResult> InvokeAsync() { var suggestedPosts = await this.postsService.GetSuggestedAsync <PostsListingViewModel>(PostsToTake); var viewModel = new PostsAllViewModel { Posts = suggestedPosts }; foreach (var post in viewModel.Posts) { post.Activity = await this.postsService.GetLatestActivityByIdAsync(post.Id); post.Tags = await this.tagsService.GetAllByPostIdAsync <PostsTagsDetailsViewModel>(post.Id); } return(this.View(viewModel)); }
public async Task <IActionResult> ByCategory(string name, int page = 1) { if (!Enum.TryParse(typeof(CategoryOfPost), name, out _)) { return(this.RedirectToAction("All")); } var enumResult = Enum.Parse <CategoryOfPost>(name); var postsCount = await this.postService.GetCountByCategoryAsync(enumResult); var pagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage); if (page > pagesCount) { page = pagesCount; } if (page <= 0) { page = 1; } var posts = await this.postService .GetByCategoryAsync <PostViewModel>(enumResult, GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage); var result = new PostsAllViewModel { Posts = posts, PagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage), }; if (result.PagesCount == 0) { result.PagesCount = 1; } if (page > result.PagesCount) { page = result.PagesCount; } result.CurrentPage = page; return(this.View(result)); }
public async Task <IActionResult> MyPosts(int page = 1) { var user = await this.userManager.GetUserAsync(this.User); var userId = await this.userManager.GetUserIdAsync(user); var postsCount = await this.postService.GetCountByUserAsync(userId); var pagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage); if (page > pagesCount) { page = pagesCount; } if (page <= 0) { page = 1; } var posts = await this.postService .GetByUserAsync <PostViewModel>(userId, GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage); var result = new PostsAllViewModel { Posts = posts, PagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage), }; if (result.PagesCount == 0) { result.PagesCount = 1; } if (page > result.PagesCount) { page = result.PagesCount; } result.CurrentPage = page; return(this.View(result)); }
public async Task <IActionResult> BySearch(string search, int page = 1) { var postsCount = await this.postService.GetCountBySearchAsync(search); var pagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage); if (page > pagesCount) { page = pagesCount; } if (page <= 0) { page = 1; } var posts = await this.searchBarService .SearchPost <PostViewModel>(search, GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage); var result = new PostsAllViewModel() { Posts = posts, PagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage), }; if (result.PagesCount == 0) { result.PagesCount = 1; } if (page > result.PagesCount) { page = result.PagesCount; } result.CurrentPage = page; result.SearchWord = search; return(this.View(result)); }
public async Task <IActionResult> All(int page = 1) { var postsCount = await this.postService.GetAllCountAsync(); var pagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage); if (page > pagesCount) { page = pagesCount; } if (page <= 0) { page = 1; } var posts = await this.postService .GetAllAsync <PostViewModel>(GlobalConstants.ItemsPerPage, (page - 1) *GlobalConstants.ItemsPerPage); var result = new PostsAllViewModel() { Posts = posts, PagesCount = (int)Math.Ceiling((double)postsCount / GlobalConstants.ItemsPerPage), }; if (result.PagesCount == 0) { result.PagesCount = 1; } if (page > result.PagesCount) { page = result.PagesCount; } result.CurrentPage = page; return(this.View(result)); }