示例#1
0
        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"));
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#4
0
        public async Task <IActionResult> IndexPost(string name, [FromForm] int offset)
        {
            ItemsLoaderDelegate postsLoader = GetUserPostsAsync;

            return(await base.Post(name, postsLoader, offset, PostsPortion));
        }