Exemplo n.º 1
0
        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);
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
 public async Task <UrlMapPageOutput> Get([FromQuery] UrlMapFilterInput input)
 {
     return(await _tinyUrlService.GetAll(input));
 }