public IQueryable <Status> SearchStatus(SearchStatusOptions options) { if (options == null) { return(null); } var query = context_ .Set <Status>() .AsQueryable(); if (!string.IsNullOrWhiteSpace(options.Description)) { query = query.Where(st => st.Description == options.Description); } if (options.StatusId != null) { query = query.Where(st => st.StatusId == options.StatusId); } if (options.DateCreatedFrom != null) { query = query.Where(st => st.DateCreated >= options.DateCreatedFrom); } if (options.DateCreatedTo != null) { query = query.Where(st => st.DateCreated <= options.DateCreatedTo); } query = query.Take(500); return(query); }
public void TrackGetSearchServiceStatus(SearchStatusOptions options, bool success, TimeSpan elapsed) { _telemetryClient.TrackMetric( Prefix + "GetSearchServiceStatusMs", elapsed.TotalMilliseconds, new Dictionary <string, string> { { "Options", options.ToString() }, { "Success", success.ToString() }, }); }
public async Task <SearchStatusResponse> GetStatusAsync(SearchStatusOptions options, Assembly assemblyForMetadata) { var response = new SearchStatusResponse { Success = true, }; response.Duration = await Measure.DurationAsync(() => PopulateResponseAsync(options, assemblyForMetadata, response)); _telemetryService.TrackGetSearchServiceStatus(options, response.Success, response.Duration.Value); return(response); }
private async Task PopulateResponseAsync(SearchStatusOptions options, Assembly assembly, SearchStatusResponse response) { await Task.WhenAll( TryAsync( async() => { if (options.HasFlag(SearchStatusOptions.AzureSearch)) { response.SearchIndex = await GetIndexStatusAsync(_searchIndex); } }, response, "warming the search index"), TryAsync( async() => { if (options.HasFlag(SearchStatusOptions.AzureSearch)) { response.HijackIndex = await GetIndexStatusAsync(_hijackIndex); } }, response, "warming the hijack index"), TryAsync( async() => { if (options.HasFlag(SearchStatusOptions.AuxiliaryFiles)) { response.AuxiliaryFiles = await GetAuxiliaryFilesMetadataAsync(); } }, response, "getting cached auxiliary data"), TryAsync( async() => { if (options.HasFlag(SearchStatusOptions.Server)) { response.Server = await GetServerStatusAsync(assembly); } }, response, "getting server information")); }
private async Task <SearchStatusResponse> GetStatusAsync(SearchStatusOptions options) { var assemblyForMetadata = typeof(SearchController).Assembly; return(await _statusService.GetStatusAsync(options, assemblyForMetadata)); }