public async Task <EmailAccount> FindDefaultAsync() { return(await _memoryCacheService.GetOrAddSlidingExpiration( DefaultEmailAccount, () => { var filter = Builders <EmailAccount> .Filter.Eq(e => e.IsDefault, true); var projection = Builders <EmailAccount> .Projection.Exclude(e => e.IsDefault); return _emailAccounts.GetSingleAsync(filter, projection); })); }
private async Task <EmbeddedActivityLogType> GetEnabledEmbeddedActivityLogTypes(string systemKeyword) { var enabledDictionary = await _memoryCacheService.GetOrAddSlidingExpiration( EnabledActivityLogTypes, async() => { var filter = Builders <ActivityLogType> .Filter.Eq(e => e.Enabled, true); var projection = Builders <ActivityLogType> .Projection .Include(e => e.Id) .Include(e => e.SystemKeyword) .Include(e => e.Name); var logTypes = await _dbContext.ActivityLogTypes.GetAllAsync(filter, projection: projection); return(logTypes.ToDictionary( kvp => kvp.SystemKeyword, kvp => new EmbeddedActivityLogType(kvp.Id, kvp.Name))); }); return(enabledDictionary == null || !enabledDictionary.TryGetValue(systemKeyword, out EmbeddedActivityLogType embeddedActivityLogType) ? null : embeddedActivityLogType); }