public async Task OnGetAsync(string filter, int currentPage = 1, int pageSize = 10) { var input = new UrlMapFilterInput() { Filter = filter, Page = currentPage, Take = pageSize, }; Result = await _tinyUrlService.GetAll(input); CurrentPage = currentPage; TotalPages = (int)Math.Ceiling(decimal.Divide(Result.TotalCount, pageSize)); }
public async Task GetAll_ShouldReturn_PageItems() { //Arrange //Act var urlMapFilterInput = new UrlMapFilterInput() { Take = 2, Page = 2 }; var urlMapOutputs = await _tinyUrlService.GetAll(urlMapFilterInput); //Assert Assert.Equal(urlMapFilterInput.Take, urlMapOutputs.Items.Count); Assert.Equal(2, urlMapFilterInput.Skip); }
public async Task Get_ShouldReturn_AItem() { //Arrange var urlMapFilterInput = new UrlMapFilterInput() { Take = 2, Page = 2 }; var urlMapOutputs = await _tinyUrlService.GetAll(urlMapFilterInput); var output = urlMapOutputs.Items.First(); //Act var urlMapOutput = await _tinyUrlService.Get(output.Id); //Assert Assert.NotNull(urlMapOutput); }
public async Task <UrlMapPageOutput> GetAll(UrlMapFilterInput input) { var queryable = _urlMapRepository.GetAll(); if (!string.IsNullOrWhiteSpace(input.Filter)) { queryable = queryable.Where(x => x.RawUrl.Contains(input.Filter) || x.Title.Contains(input.Filter)); } var totalCount = await queryable.CountAsync(); var urlMaps = await queryable.OrderByDescending(x => x.CreationTime).Skip(input.Skip).Take(input.Take).ToListAsync(); var outputs = urlMaps.ConvertAll(x => new UrlMapOutput(x)).ToList(); var shortenWebRootPath = _configuration.GetValue <string>("App:ShortenWebRootPath"); foreach (var output in outputs) { output.ShortenUrlView = $"{shortenWebRootPath}{output.ShortenUrl}"; } return(new UrlMapPageOutput(outputs, totalCount)); }
public async Task <UrlMapPageOutput> Get([FromQuery] UrlMapFilterInput input) { return(await _tinyUrlService.GetAll(input)); }