public async Task <List <PlanetModel> > SearchAsync(string url, PlanetSearchRequestDto request) { var processedUrl = string.Empty; if (!string.IsNullOrEmpty(request.Name)) { processedUrl = string.Concat(url, AppSettings.QueryString + request.Name); } else { processedUrl = url; } var responseDto = await _requestHelper.CallServiceAsync <PlanetSearchResponseDto>(processedUrl); var results = _planetMappingHelper.MapToModelList(responseDto); allPageResults.AddRange(results); if (responseDto.next != null) { await SearchAsync(responseDto.next, request); } return(allPageResults); }
public async Task <ActionResult> GetAllPlanets() { var response = new SearchPlanetViewModel(); var planetGetRequestDto = new PlanetSearchRequestDto(); // All Planets response = await _planetHelper.SearchPlanetList(planetGetRequestDto); return(View(response)); }
public async Task <SearchPlanetViewModel> SearchPlanetList(PlanetSearchRequestDto request) { var response = new SearchPlanetViewModel(); var planetSearchRequestUrl = _commonUrlHelper.GetApiUrl(ApiRequestType.PlanetSearchUrl); var planetListResponse = await _planetRequestHelper.SearchAsync(planetSearchRequestUrl, request); if (planetListResponse.Any()) { response = _planetModelDecoratorHelper.SearchViewModel(planetListResponse); } return(response); }
public async Task <ActionResult> GetResidentsOfPlanetNaboo(string planetname) { var response = new List <SearchPlanetResidentsViewModel>(); var planetSearchRequestDto = new PlanetSearchRequestDto() { Name = "Naboo" }; //var planetSearchRequestDto = new PlanetSearchRequestDto(); // All Planet's Residents response = await _planetHelper.SearchPlanetResidentsList(planetSearchRequestDto); return(View(response)); }
public async Task <List <SearchPlanetResidentsViewModel> > SearchPlanetResidentsList(PlanetSearchRequestDto request) { var response = new List <SearchPlanetResidentsViewModel>(); var planetSearchRequestUrl = _commonUrlHelper.GetApiUrl(ApiRequestType.PlanetSearchUrl); var planetListResponse = await _planetRequestHelper.SearchAsync(planetSearchRequestUrl, request); if (planetListResponse.Any()) { foreach (var item in planetListResponse) { var residentList = new List <PeopleModel>(); if (item.Residents.Any()) { foreach (var residentUrl in item.Residents) { var peopleGetResponse = await _peopleHelper.GetResidentsPerPlanetAsync(residentUrl); if (peopleGetResponse != null) { residentList.Add(peopleGetResponse); } } response.Add(new SearchPlanetResidentsViewModel() { Name = item.Name, ResidentlList = residentList.OrderBy(o => o.Name).ToList() }); residentList = null; } } } return(response); }