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);
        }