public IDictionary <string, object> GetShapedEntity(MediaTypeHeaderValue parsedMediaType, Performance performance, string fields) { if (_paginationService.GetPrimaryMediaType(parsedMediaType) == MediaTypes.PrimaryFullPerformance) { var fullResourceToReturn = _mapper.Map <PerformanceFullDto>(performance) .ShapeData(fields) as IDictionary <string, object>; if (_paginationService.IncludeLinks(parsedMediaType)) { fullResourceToReturn.Add("links", _paginationService.CreateLinksForEntity(performance.Guid, fields)); } return(fullResourceToReturn); } var friendlyResourceToReturn = _mapper.Map <PerformanceDto>(performance) .ShapeData(fields) as IDictionary <string, object>; if (_paginationService.IncludeLinks(parsedMediaType)) { friendlyResourceToReturn.Add("links", _paginationService.CreateLinksForEntity(performance.Guid, fields)); } return(friendlyResourceToReturn); }
private object GetCustomShapedCollection(PagedList <Skill> skills, ResourceParameters resourceParameters, MediaTypeHeaderValue parsedMediaType) { var shapedSkills = _mapper.Map <IEnumerable <SkillDto> >(skills) .ShapeData(resourceParameters.Fields); if (_paginationService.IncludeLinks(parsedMediaType)) { var shapedSkillsWithLinks = shapedSkills.Select(skill => { var skillAsDictionary = skill as IDictionary <string, object>; var skillLinks = _paginationService.CreateLinksForEntity((Guid)skillAsDictionary["Id"], null); skillAsDictionary.Add("links", skillLinks); return(skillAsDictionary); }); return(new { value = shapedSkillsWithLinks, links = _paginationService.CreateLinksForEntities(resourceParameters, skills.HasNext, skills.HasPrevious) }); } return(shapedSkills); }