Exemplo n.º 1
0
        public async Task <IActionResult> Create(CreateLinkDTO input)
        {
            var entry = await _linkService.AddLinkEntry(input.URL, Request.HttpContext.Connection.RemoteIpAddress.ToString());

            if (!entry.Success)
            {
                foreach (var error in entry.Errors)
                {
                    ModelState.AddModelError(nameof(input.URL), error);
                }
                return(BadRequest(ModelState));
            }



            return(CreatedAtAction(nameof(Create), LinkDTOPreparer.PrepareDTOWithCount(entry.Entry, HostAddress).ShortenedUrl));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Get([FromQuery] int pageIndex, string searchString, string sortOrder)
        {
            if (pageIndex < 1)
            {
                pageIndex = 1;
            }

            var entries = await _linkService.GetAllPaginated(pageIndex, searchString, sortOrder);

            if (entries is null)
            {
                return(NotFound());
            }

            IPaginatedList <LinkWithCountDTO> dtoModel = PaginatedModel <LinkWithCountDTO> .CreatePaginatedModel(entries.Items.Select(m => LinkDTOPreparer.PrepareDTOWithCount(m, HostAddress)).ToList(), entries.PageIndex, entries.TotalPages, entries.TotalCount, entries.PageSize);

            return(Ok(dtoModel));
        }