private static bool CheckDuplication(IDBConnector dbConnector, Contest contest) { int sportTypeDuplicationRange = SportTypeTimeRangeDuplication.GetTimeRangeBySportType(contest.SportType); ISearchService searchService = new AzureSearchService(); SearchIndexParameters parameters = new SearchIndexParameters() { Filter = $"SportType eq '{contest.SportType}' and League eq '{contest.League}' " + $"and HomeTeam eq '{contest.HomeTeam}' and AwayTeam eq '{contest.AwayTeam}' " + $"and GameStartDate gt {contest.GameStartDate.AddHours(-sportTypeDuplicationRange).ToString("yyyy-MM-ddTHH:mm:ssZ")} " + $"and GameStartDate lt {contest.GameStartDate.AddHours(sportTypeDuplicationRange).ToString("yyyy-MM-ddTHH:mm:ssZ")}", Select = new[] { "id" } }; var results = searchService.RunQuery(parameters); if (results == null || (results != null && results.Results.Count == 0)) { return(false); } else { return(true); } }
/// <summary> /// Using Search Index engine, retrieve to results. /// </summary> /// <param name="from"></param> /// <param name="to"></param> /// <returns></returns> private List <Contest> GetContestList(DateTime from, DateTime to) { try { string formattedFromDate = from.ToString("yyyy-MM-ddTHH:mm:ssZ"); string formattedToDate = to.ToString("yyyy-MM-ddTHH:mm:ssZ"); ISearchService searchService = new AzureSearchService(); SearchIndexParameters parameters = new SearchIndexParameters() { Filter = $"GameStartDate gt {formattedFromDate} and GameStartDate lt {formattedToDate}", Select = new[] { "id", "GameStartDate", "CompetitionName", "HomeTeam", "AwayTeam", "SportType", "League" } }; var results = searchService.RunQuery(parameters); List <Contest> contests = new List <Contest>(); if (results != null && results.Results != null) { BuildResults(results, contests); } return(contests); } catch (Exception ex) { Console.WriteLine(ex); return(null); } }
public DocumentSearchResult <Contest> RunQuery(SearchIndexParameters parameters) { try { SearchParameters searchParameters = new SearchParameters() { Filter = parameters.Filter, Select = parameters.Select }; ISearchIndexClient indexClient = _searchClient.Indexes.GetClient("scoresindex"); var results = indexClient.Documents.Search <Contest>("*", searchParameters); return(results); } catch (Exception ex) { Console.WriteLine(ex); return(null); } }