コード例 #1
0
        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);
            }
        }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
        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);
            }
        }