public IActionResult GetOwnerById(Guid id, [FromQuery] OwnerQueryStringParams ownerParameters) { try { var owner = _repositoryWrapper.Owner.GetOwnerById(id); if (owner == null) { return(NotFound()); } else { var ownerDto = _mapper.Map <OwnerDto>(owner); return(Ok(ownerDto.shapeObject(ownerParameters.fields))); } } catch (Exception ex) { return(StatusCode(500, "Internal server error")); } }
public PagedList <Owner> GetOwners(OwnerQueryStringParams ownerParameters) { var y = RepositoryContext.Owners.FromSqlRaw($"EXEC FirstProcedure '144F038F-1A9E-4522-0D01-08D7D7359868'").ToList(); foreach (var a in y) { Console.WriteLine("jjjjjjjjjjjjjjjjjj {}"); } var owners = FindByCondition(o => o.DateOfBirth.Year >= ownerParameters.MinYearOfBirth && o.DateOfBirth.Year <= ownerParameters.MaxYearOfBirth) .Include(o => o.Accounts).OrderByQueryOrDefault(ownerParameters.OrderBy, "Name"); var count = owners.Count(); SearchByName(ref owners, ownerParameters.Name); var ownersList = owners.Paginate(ownerParameters.PageSize, ownerParameters.PageNumber) .ToList(); return(new PagedList <Owner>(ownersList, count, ownerParameters.PageNumber, ownerParameters.PageSize )); }
public IActionResult GetOwners([FromQuery] OwnerQueryStringParams ownerParameters) { if (!ownerParameters.ValidYearRange) { return(BadRequest("Max year of birth cannot be less than min year of birth")); } var owners = _repositoryWrapper.Owner.GetOwners(ownerParameters); var ownersDto = _mapper.Map <IEnumerable <Owner>, IEnumerable <OwnerDto> >(owners); var metadata = new { owners.TotalCount, owners.PageSize, owners.CurrentPage, owners.TotalPages, owners.HasNext, owners.HasPrevious }; var shapedOwnersDto = ownersDto.SelectByFieldsQuery(ownerParameters.fields); foreach (ExpandoObject expandoOwner in shapedOwnersDto) { var dict = ((IDictionary <string, object>)expandoOwner); Object value; dict.TryGetValue("OwnerId", out value); dict.Add("links", CreateLinksForOwner((Guid)value)); } Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); LinkCollectionWrapper collectionWrapper = new LinkCollectionWrapper() { Value = shapedOwnersDto.ToList(), Links = CreateLinksForOwners(ownerParameters.fields) }; return(Ok(collectionWrapper)); }