public async Task <IActionResult> Index(string name, [FromQuery] int offset = 0) { ItemsLoaderDelegate postsLoader = GetUserPostsAsync; return(await base.Get(name, postsLoader, offset, PostsPortion, u => "No posts yet", u => $"{u.UserName}'s posts", u => $"{u.FullName}'s posts")); }
protected async Task <IActionResult> Get(string userName, ItemsLoaderDelegate itemsLoader, int offset, int count, Func <IUser, string> itemsDefaultText, Func <IUser, string> title, Func <IUser, string> main) { int sum = OffsetCountResolver.ResolveOffsetCountWithReserve(offset, ref count); var userLeftMenuModel = await UserLeftMenuModel.FromDatabase(DbConnection, userName, User); if (userLeftMenuModel == null) { return(NotFound()); } var items = await itemsLoader(userLeftMenuModel.Id, 0, sum, userLeftMenuModel); if (items.DefaultText == null) { items.DefaultText = itemsDefaultText(userLeftMenuModel); } ViewData["User"] = userLeftMenuModel; ViewData["Title"] = title(userLeftMenuModel); ViewData["Main"] = main(userLeftMenuModel); return(View("~/Views/SimpleListWithLoadMoreView.cshtml", items)); }
protected async Task <IActionResult> Post(string userName, ItemsLoaderDelegate itemsLoader, int offset, int count) { OffsetCountResolver.ResolveOffsetCountWithReserve(offset, ref count); var userId = await DbConnection.GetUserIdByNameAsync(userName); var items = await itemsLoader(userId, offset, count); if (items == null) { return(NotFound()); } return(PartialView("~/Views/_Partials/ListWithLoadMore.cshtml", items)); }
public async Task <IActionResult> IndexPost(string name, [FromForm] int offset) { ItemsLoaderDelegate postsLoader = GetUserPostsAsync; return(await base.Post(name, postsLoader, offset, PostsPortion)); }