31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
using JSMR.Application.Common.Caching;
|
|
using JSMR.Application.VoiceWorks.Ports;
|
|
|
|
namespace JSMR.Application.VoiceWorks.Queries.Search;
|
|
|
|
// TODO: Caching?
|
|
public sealed class SearchVoiceWorksHandler(IVoiceWorkSearchProvider provider)
|
|
{
|
|
public async Task<SearchVoiceWorksResponse> HandleAsync(SearchVoiceWorksRequest request, CancellationToken cancellationToken)
|
|
{
|
|
var searchOptions = request.Options;
|
|
|
|
//string cacheKey = $"vw:{searchOptions.GetHashCode()}";
|
|
|
|
//VoiceWorkSearchResults? cachedResults = await cache.GetAsync<VoiceWorkSearchResults>(cacheKey, cancellationToken);
|
|
|
|
//if (cachedResults != null)
|
|
// return new SearchVoiceWorksResponse(cachedResults);
|
|
|
|
var results = await provider.SearchAsync(searchOptions, cancellationToken);
|
|
|
|
//CacheEntryOptions cacheEntryOptions = new()
|
|
//{
|
|
// SlidingExpiration = TimeSpan.FromMinutes(10)
|
|
//};
|
|
|
|
//await cache.SetAsync(cacheKey, results, cacheEntryOptions, cancellationToken);
|
|
|
|
return new SearchVoiceWorksResponse(results);
|
|
}
|
|
} |