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);
        }