public ActionResult <IEnumerable <Speaker> > GetSpeakers() { var speakersFromRepo = speakerRepository.GetSpeakers(); //should map from a dto //call dto instead of model return(Ok(speakersFromRepo)); }
public async Task <List <SpeakerResponse> > GetSpeakers() { var speakers = await _repository.GetSpeakers(); List <SpeakerResponse> speakerResponses = new List <SpeakerResponse>(); speakers.ForEach(s => speakerResponses.Add(new SpeakerResponse(s))); return(speakerResponses); }
public IActionResult GetSpeakers([FromQuery] SpeakerResourceParameters speakersParam) { var speakersFromRepo = _speakerRepository.GetSpeakers(speakersParam); //map from repo to DTO var paginationMetadata = new { totalCount = speakersFromRepo.TotalCount, pageSize = speakersFromRepo.PageSize, currentPage = speakersFromRepo.CurrentPage, totalPages = speakersFromRepo.TotalPages }; Response.Headers.Add("X-Pagination", JsonSerializer.Serialize(paginationMetadata)); //response.Headers.Add("X-Paging-PageNo", pageNo.ToString()); //response.Headers.Add("X-Paging-PageSize", pageSize.ToString()); //response.Headers.Add("X-Paging-PageCount", pageCount.ToString()); //response.Headers.Add("X-Paging-TotalRecordCount", total.ToString()); var links = CreateLinksForSpeakers(speakersParam, speakersFromRepo.HasNext, speakersFromRepo.HasPrevious); var shapedSpeakers = _mapper.Map <IEnumerable <SpeakerDto> >(speakersFromRepo) .ShapeData(); var speakerWithLinks = shapedSpeakers.Select(speaker => { var speakerAsDictionary = speaker as IDictionary <string, object>; var speakerLinks = CreateLinksForSpeaker((int)speakerAsDictionary["Id"]); speakerAsDictionary.Add("links", speakerLinks); return(speakerAsDictionary); }); var linkedResource = new { value = speakerWithLinks, links }; return(Ok(linkedResource)); }
public IEnumerable <Speaker> Get() { return(_speakerRepository.GetSpeakers()); }
public IPageOfItems <Speaker> GetSpeakers(Event evnt, SpeakerFilterCriteria speakerFilterCriteria) { return(repository.GetSpeakers(new PagingInfo(speakerFilterCriteria.PageIndex, speakerFilterCriteria.PageSize), evnt, speakerFilterCriteria)); }
public IPageOfItems <Speaker> GetSpeakers(EventAddress eventAddress, SpeakerFilterCriteria speakerFilterCriteria) { return(repository.GetSpeakers(null, speakerFilterCriteria).GetPage(speakerFilterCriteria.PageIndex, speakerFilterCriteria.PageSize)); }