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)); }
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)); }