コード例 #1
0
ファイル: UnitOfWorkBase.cs プロジェクト: Citolab/persistence
        /// <summary>
        /// </summary>
        /// <param name="memoryCache"></param>
        /// <param name="loggerFactory"></param>
        /// <param name="options"></param>
        protected UnitOfWorkBase(IMemoryCache memoryCache, ILoggerFactory loggerFactory,
                                 ICollectionOptions options)
        {
            MemoryCache   = memoryCache;
            LoggerFactory = loggerFactory;
            var logger = loggerFactory.CreateLogger(GetType());

            if (!options.TimeLoggingEnabled)
            {
                return;
            }
            logger.LogDebug(
                "Time logging is enabled in appsettings: logging time with the LogTimeDecorator will be started.");
            LogTime = true;
        }
コード例 #2
0
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="memoryCache"></param>
        /// <param name="loggerFactory"></param>
        /// <param name="options"></param>
        public MongoDbUnitOfWork(IMemoryCache memoryCache, ILoggerFactory loggerFactory,
                                 ICollectionOptions options)
            : base(memoryCache, loggerFactory, options)
        {
            if (!(options is IMongoDbDatabaseOptions mongoOptions))
            {
                throw new ArgumentException("Options should be of type IMongoDatabaseOptions");
            }
            _logger = loggerFactory.CreateLogger(GetType());
            try
            {
                var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
                if (string.IsNullOrWhiteSpace(environment))
                {
                    environment = "Development";
                }
                var fullDatabaseName = mongoOptions.EnvironmentSuffix ?
                                       $"{mongoOptions.DatabaseName}-{environment}" :
                                       mongoOptions.DatabaseName;

                var mongoClientSettings =
                    MongoClientSettings.FromConnectionString(
                        $"{mongoOptions.ConnectionString}/{fullDatabaseName}");
                mongoClientSettings.MaxConnectionIdleTime = TimeSpan.FromMinutes(1);
                var client = new MongoClient(mongoClientSettings);

                _mongoDatabase = client.GetDatabase(fullDatabaseName);
                _typesToCache  = mongoOptions.TypesToCache;
                Collections    = new ConcurrentDictionary <Type, object>();
            }
            catch (Exception exception)
            {
                _logger.LogCritical(
                    $"Error while connecting to {mongoOptions.ConnectionString}.", exception);
                throw;
            }
        }
コード例 #3
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="memoryCache"></param>
 /// <param name="loggerFactory"></param>
 /// <param name="options"></param>
 public NoActionUnitOfWork(IMemoryCache memoryCache, ILoggerFactory loggerFactory, ICollectionOptions options)
     : base(memoryCache, loggerFactory, options)
 {
     Collections = new ConcurrentDictionary <Type, object>();
     _logger     = loggerFactory.CreateLogger(GetType());
 }