public async Task <IActionResult> GetAccounts([FromQuery] BankAccountParams bankAccountParams) { var result = await accountService.GetAccounts(await userManager.FindByNameAsync(User.Identity.Name), bankAccountParams); var metadata = new { result.TotalCount, result.PageSize, result.CurrentPage, result.TotalPages, result.HasNext, result.HasPrevious }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(result)); }
public async void GetAccountsTest_NotNullEmptyPagedList() { var accRepoMock = new Mock <IRepository <Account> >(); var accParams = new BankAccountParams { PageNumber = 3, PageSize = 4 }; accRepoMock.Setup(repo => repo.Get(It.IsAny <Func <Account, bool> >(), accParams)).ReturnsAsync(new PagedList <Account>(new List <Account>(), 0, accParams.PageNumber, accParams.PageSize)); var service = new AccountService(accRepoMock.Object, null, null); var result = await service.GetAccounts(activeUser, accParams); Assert.NotNull(result); Assert.IsType <PagedList <Account> >(result); Assert.Empty(result); Assert.NotEqual(activeUser.Accounts.Count, result.TotalCount); Assert.False(result.HasNext); Assert.True(result.HasPrevious); Assert.Equal(0, result.TotalPages); }
public async Task <PagedList <Account> > GetAccounts(UserProfile currentUser, BankAccountParams bankAccountParams) { return(await repository.Get(a => a.OwnerId.Equals(currentUser.Id), bankAccountParams)); }