public ResultViewModel GetResultsBasedOnArtistNameNAliasSearch(string SearchCriteria, int Page, int PageSize) { List<Solution.Entities.Artist> artists = _artistService.GetAllRecordsBasedOnFilter(new ArtistFilter { ArtistNameAndAliasSearchTerm = SearchCriteria, Page = Page, PageSize = PageSize }); int noOfrecords = _artistService.GetNoOfRecordsBasedOnFilter(new ArtistFilter { ArtistNameAndAliasSearchTerm = SearchCriteria }); var artistViewModelList = new List<Solution.WebAPI.Models.Artist>(); foreach (Solution.Entities.Artist a in artists) { Solution.WebAPI.Models.Artist artist = new Solution.WebAPI.Models.Artist(); artist.Name = a.ArtistName; artist.Country = a.Country; artist.Alias = new List<string>(); if (a.Aliases != null) foreach (string alias in a.Aliases.Split(',')) { artist.Alias.Add(alias.Trim()); } artistViewModelList.Add(artist); } ResultViewModel myResultViewModel = new ResultViewModel(); myResultViewModel.Results = artistViewModelList; myResultViewModel.Page = Page.ToString(); myResultViewModel.PageSize = PageSize.ToString(); myResultViewModel.NumberOfSearchResults = noOfrecords; return myResultViewModel; }
public HttpResponseMessage Search(string search_criteria, int page_number, int page_size) { if (page_number < 1) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "page_number cannot be less than 1"); if (page_size < 1) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "page_size cannot be less than 1"); ResultViewModel results = new ResultViewModel(); try { results = _artistServiceClient.GetResultsBasedOnArtistNameNAliasSearch(search_criteria, page_number, page_size); } catch { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Oops - Something unexpected happened."); } if (results.Results.Count == 0) return Request.CreateErrorResponse(HttpStatusCode.NotFound, "No matching records found."); return Request.CreateResponse(HttpStatusCode.OK, results); }