Exemplo n.º 1
0
        public async Task <BudgetViewModel> Handle(GetBudgetQuery request, CancellationToken cancellationToken)
        {
            if (_memoryCache.TryGetValue(CacheKeys.CacheKeyForBudgetId(request.BudgetId), out BudgetViewModel cacheEntry))
            {
                return(cacheEntry);
            }

            var filter = Builders <BudgetViewModel> .Filter.Eq(m => m.BudgetId, request.BudgetId);

            var budgetViewModel = await _budgetNoSqlContext
                                  .Budgets
                                  .Find(filter)
                                  .FirstOrDefaultAsync(cancellationToken);

            if (budgetViewModel == null)
            {
                return(null);
            }

            _memoryCache.Set(
                CacheKeys.CacheKeyForBudgetId(budgetViewModel.BudgetId),
                budgetViewModel,
                new MemoryCacheEntryOptions
            {
                SlidingExpiration = TimeSpan.FromMinutes(1)
            });

            return(budgetViewModel);
        }
Exemplo n.º 2
0
 private void UpdateMemoryCache(BudgetViewModel budgetViewModel)
 {
     _memoryCache.Set(
         CacheKeys.CacheKeyForBudgetId(budgetViewModel.BudgetId),
         budgetViewModel,
         new MemoryCacheEntryOptions
     {
         SlidingExpiration = TimeSpan.FromMinutes(1)
     });
 }