public CustomSearchResult <T> CustomQuery <T>(RequestBase query, CultureInfo culture, string indexName = null)
        {
            if (query == null)
            {
                return(new CustomSearchResult <T>());
            }

            RawResults <EsCustomRootObject <T> > rawResults = GetRawResults <EsCustomRootObject <T> >(query, Language.GetLanguageCode(culture), indexName);

            if (rawResults?.RootObject == null)
            {
                return(new CustomSearchResult <T>());
            }

            var searchResult = new CustomSearchResult <T>
            {
                Query = query.ToString(Formatting.Indented)
            };

            if (rawResults.RootObject.Hits?.HitArray != null && rawResults.RootObject.Hits.HitArray.Length > 0)
            {
                searchResult.Hits      = rawResults.RootObject.Hits.HitArray.Select(h => new CustomSearchHit <T>(h.Source, h.Score, h.Highlight));
                searchResult.TotalHits = rawResults.RootObject.Hits.Total;
                searchResult.Took      = rawResults.RootObject.Took;
            }

            SetupFacets(rawResults.RootObject, searchResult);

            return(searchResult);
        }
Beispiel #2
0
 public override void Delete(LeagueDbContext dbContext)
 {
     IRSimSessionDetails?.Delete(dbContext);
     RawResults?.ToList().ForEach(x => x.Delete(dbContext));
     ScoredResults?.ToList().ForEach(x => x.Delete(dbContext));
     base.Delete(dbContext);
 }
Beispiel #3
0
        /// <summary>
        /// Load the raw event results into the registered athletes.
        /// </summary>
        private void LoadRawEventResults()
        {
            List <IRaw> rawResultsData = this.handicapEventModel.LoadRawResults();

            foreach (IRaw raw in rawResultsData)
            {
                bool found = false;

                foreach (RawResults results in UnregisteredAthletes)
                {
                    if (results.AthleteNumbers.Contains(raw.RaceNumber))
                    {
                        results.RaceNumber = raw.RaceNumber;
                        results.RaceTime   = raw.TotalTime;
                        results.Order      = raw.Order;
                        found = true;
                        break;
                    }
                }

                if (!found)
                {
                    ObservableCollection <string> newNumber = new ObservableCollection <string> {
                        raw.RaceNumber
                    };
                    RawResults newResult = new RawResults(0, string.Empty, newNumber);
                    newResult.RaceTime   = raw.TotalTime;
                    newResult.RaceNumber = raw.RaceNumber;
                    newResult.Order      = raw.Order;

                    this.AllAthletes.Add(newResult);
                }
            }
        }
Beispiel #4
0
 public void GetCountingResults()
 {
     try
     {
         results = handler.GetResults();
     }
     catch (Exception x)
     {
         logger.TraceEvent(LogLevels.Error, 1010, "Exception getting results " + x.Message);
         logger.TraceException(x, true);
     }
 }
        /// <summary>
        /// Execute the provided query
        /// </summary>
        /// <param name="query">Use <see cref="QueryBuilder"/> to generate a suitable query.</param>
        /// <param name="culture"></param>
        /// <param name="indexName"></param>
        public SearchResult Query(RequestBase query, CultureInfo culture, string indexName = null)
        {
            if (query == null)
            {
                return(new SearchResult());
            }

            RawResults <EsRootObject> rawResults = GetRawResults <EsRootObject>(query, Language.GetLanguageCode(culture), indexName);

            if (rawResults?.RootObject == null)
            {
                return(new SearchResult());
            }

            SearchResult searchResult = SetupResults(rawResults, query.ToString(Formatting.Indented));

            SetupFacets(rawResults.RootObject, searchResult);

            return(searchResult);
        }
        private SearchResult SetupResults(RawResults <EsRootObject> results, string query)
        {
            Hits hits         = results.RootObject.Hits;
            var  searchResult = new SearchResult
            {
                Query         = query,
                RawJsonOutput = results.RawJson
            };

            if (results.RootObject.Suggest?.DidYouMean != null && results.RootObject.Suggest.DidYouMean.Length > 0)
            {
                searchResult.DidYouMeanSuggestions = results.RootObject.Suggest.DidYouMean[0].Options;
            }

            if (hits?.HitArray != null && hits.HitArray.Length > 0)
            {
                searchResult.Hits      = hits.HitArray.Select(Map);
                searchResult.TotalHits = hits.Total;
                searchResult.Took      = results.RootObject.Took;
            }

            return(searchResult);
        }
        /// <summary>
        /// Execute the provided query
        /// </summary>
        /// <param name="query">Use <see cref="QueryBuilder"/> to generate a suitable query.</param>
        /// <param name="culture"></param>
        /// <param name="cancellationToken"></param>
        /// <param name="indexName"></param>
        public async Task <SearchResult> QueryAsync(RequestBase query, CultureInfo culture, CancellationToken cancellationToken, string indexName = null)
        {
            if (query == null)
            {
                return(new SearchResult());
            }

            EsRootObject results = await GetRawResultsAsync <EsRootObject>(query, Language.GetLanguageCode(culture), cancellationToken, indexName);

            if (results == null)
            {
                return(new SearchResult());
            }

            var rawResults = new RawResults <EsRootObject> {
                RootObject = results
            };

            SearchResult searchResult = SetupResults(rawResults, query.ToString(Formatting.Indented));

            SetupFacets(results, searchResult);

            return(searchResult);
        }
Beispiel #8
0
        /// <summary>
        ///
        /// </summary>
        private void RegisterNewResult(string raceNumber, RaceTimeType raceTime)
        {
            RawResults result = this.FindAthlete(raceNumber);

            if (result != null)
            {
                result.RaceNumber = raceNumber;
                result.RaceTime   = raceTime;

                // Determine the finish order if two or more athletes share the same finishing time.
                List <RawResults> filteredList = AllAthletes.FindAll(athlete => athlete.RaceTime == result.RaceTime);
                result.Order = filteredList.Count();

                ResetMemberData();

                RaisePropertyChangedEvent("UnregisteredAthletes");
                RaisePropertyChangedEvent("RegisteredAthletes");
            }
            else
            {
                // The athlete is unknown. Add the data to all athletes, all athletes is read
                // when saving the raw results.
                ObservableCollection <string> newNumber = new ObservableCollection <string> {
                    raceNumber
                };
                RawResults newResult = new RawResults(0, string.Empty, newNumber);
                newResult.RaceTime   = raceTime;
                newResult.RaceNumber = raceNumber;

                // Determine the finish order if two or more athletes share the same finishing time.
                List <RawResults> filteredList = AllAthletes.FindAll(athlete => athlete.RaceTime == raceTime);
                newResult.Order = filteredList.Count();

                this.AllAthletes.Add(newResult);
            }
        }
Beispiel #9
0
 public void GetCountingResults()
 {
     try
     {
         results = handler.GetResults();
     }
     catch (Exception x)
     {
         logger.TraceEvent(LogLevels.Error, 1010, "Exception getting results " + x.Message);
         logger.TraceException(x, true);
     }
 }