Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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() },
     });
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 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"));
 }
Ejemplo n.º 5
0
        private async Task <SearchStatusResponse> GetStatusAsync(SearchStatusOptions options)
        {
            var assemblyForMetadata = typeof(SearchController).Assembly;

            return(await _statusService.GetStatusAsync(options, assemblyForMetadata));
        }