public IActionResult GetApplication(int id, [FromQuery] string fields, bool includeQualification = false) { if (!_typeHelperService.TypeHasProperties <ApplicationDto> (fields)) { return(BadRequest()); } var applicationFromRepo = _applicationInfoRepository.GetApplication(id, includeQualification); if (applicationFromRepo == null) { return(NotFound()); } if (includeQualification) { //var resultsWithQualifications = Mapper.Map<ApplicationWithQualificationDto>(applications); NOT USED, but should be used for http://localhost:63292/api/applications/69?includeQualification=true //return Ok(resultsWithQualifications); NOT USED, but should be used for http://localhost:63292/api/applications/69?includeQualification=true } var results = Mapper.Map <ApplicationDto>(applicationFromRepo); #region Supporting HATEOAS (Dynamic Approach) var links = CreateLinksForApplication(id, fields); var linkedResourceToReturn = results.ShapeData(fields) as IDictionary <string, object>; linkedResourceToReturn.Add("links", links); #endregion return(Ok(linkedResourceToReturn)); //return Ok(results); }