public List<SearchBoardGameResult> SearchBoardGames(string query, bool exactMatch = false)
{
try
{
var uriString = BASE_URL_API_V2 + $"/search?query={CleanUpQuery(query)}&type=boardgame";
if (exactMatch)
{
uriString += "&exact=1";
}
var searchUrl = new Uri(uriString);
var xDoc = _apiDownloadService.DownloadApiResult(searchUrl);
// LINQ to XML.
var gameCollection = xDoc.Descendants("item").Select(boardgame => new SearchBoardGameResult
{
BoardGameName = boardgame.Element("name").GetStringValue("value"),
BoardGameId = boardgame.GetIntValue("id",-1).Value,
YearPublished = boardgame.Element("yearpublished").GetIntValue("value",-1).Value
}).ToList();
if (gameCollection.Any())
{
gameCollection = gameCollection.SortSearchResults(query);
}
return gameCollection;
}
catch (Exception ex)
{
_rollbar.SendException(ex);
return new List<SearchBoardGameResult>();
}
}