public override void Init()
 {
     base.Init();
     _distributedLockService    = _container.Resolve <DistributedLockService>();
     _applicationEnvironment    = (StubApplicationEnvironment)_container.Resolve <IApplicationEnvironment>();
     _distributedLockRepository = _container.Resolve <IRepository <DistributedLockRecord> >();
     _transactionManager        = _container.Resolve <ITransactionManager>();
 }
コード例 #2
0
 public DataService(StackExchange.Redis.ConnectionMultiplexer redis, DistributedLockService distributedLockService, MongoClient mongoClient, string redisDownloadListKey, string mongoDownloadCollectionName)
 {
     this.redis = redis;
     this.distributedLockService      = distributedLockService;
     this.mongoClient                 = mongoClient;
     this.redisDownloadListKey        = redisDownloadListKey;
     this.mongoDownloadCollectionName = mongoDownloadCollectionName;
 }
コード例 #3
0
        public Runner(
            IIoCContainer container,
            EventBroker eventBroker,
            IApplicationLifetime applicationLifetime,
            DistributedLockService distributedLockService,
            string enabledSetting)
        {
            if (string.IsNullOrEmpty(enabledSetting) || !bool.TryParse(enabledSetting, out bool enabled) || !enabled)
            {
                this.Log().Information("MediaMapper not enabled. Set web.config AppSetting \"MediaMapperEnabled\" to \"true\" to enable.");
                return;
            }

            var subscription = eventBroker.Subscribe <FileCreated>(EventScope.Local, ev =>
            {
                using (Solution.Instance.SystemToken.Use())
                    using (distributedLockService.AcquireLock(lockKey, TimeSpan.FromSeconds(10)))
                    {
                        foreach (var m in container.ResolveAll <IMediaMapper>().Where(r => r.GetUploadFolder()?.SystemId == ev.Item.FolderSystemId))
                        {
                            m.Map();
                        }
                    }
            });

            applicationLifetime.ApplicationStarted.Register(() =>
            {
                _task = Task.Run(() =>
                {
                    using (Solution.Instance.SystemToken.Use())
                    {
                        while (!_cancellationTokenSource.Token.IsCancellationRequested)
                        {
                            if (SleepUnlessCancelled(5, _cancellationTokenSource.Token))
                            {
                                return;
                            }

                            using (distributedLockService.AcquireLock(lockKey, TimeSpan.FromSeconds(10)))
                            {
                                foreach (var m in container.ResolveAll <IMediaMapper>())
                                {
                                    m.Map();
                                }
                            }
                        }
                    }
                }, _cancellationTokenSource.Token);
            });

            applicationLifetime.ApplicationStopping.Register(() =>
            {
                _cancellationTokenSource.Cancel();
                subscription.Dispose();
            });
        }
コード例 #4
0
 public ErpPriceCalculatorDecorator(IPriceCalculator parent, IHttpContextAccessor httpContextAccessor,
                                    DistributedMemoryCacheService distributedMemoryCacheService, DistributedLockService distributedLockService,
                                    ILogger <ErpPriceCalculatorDecorator> logger)
 {
     _parent = parent;
     _httpContextAccessor           = httpContextAccessor;
     _distributedMemoryCacheService = distributedMemoryCacheService;
     _distributedLockService        = distributedLockService;
     _logger = logger;
 }
コード例 #5
0
 public Runner(
     IIoCContainer container,
     EventBroker eventBroker,
     IApplicationLifetime applicationLifetime,
     DistributedLockService distributedLockService) : this(
         container,
         eventBroker,
         applicationLifetime,
         distributedLockService,
         ConfigurationManager.AppSettings["MediaMapperEnabled"])
 {
 }
コード例 #6
0
 public PaymentWidgetService(
     SecurityToken securityToken,
     ModuleECommerce moduleECommerce,
     TargetGroupEngine targetGroupEngine,
     CartAccessor cartAccessor,
     ChannelService channelService,
     LanguageService languageService,
     DistributedLockService distributedLockService)
 {
     _cartAccessor           = cartAccessor;
     _channelService         = channelService;
     _languageService        = languageService;
     _distributedLockService = distributedLockService;
     _securityToken          = securityToken;
     _targetGroupEngine      = targetGroupEngine;
     _moduleECommerce        = moduleECommerce;
 }
コード例 #7
0
 public KlarnaWidgetV2(
     IPaymentInfoCalculator paymentInfoCalculator,
     PaymentWidgetService paymentWidgetService,
     KlarnaPaymentConfigV2 paymentConfig,
     RequestModelAccessor requestModelAccessor,
     RouteRequestLookupInfoAccessor routeRequestLookupInfoAccessor,
     SecurityToken securityToken,
     UrlService urlService,
     PageService pageService,
     DistributedLockService distributedLockService)
 {
     _paymentInfoCalculator          = paymentInfoCalculator;
     _paymentConfig                  = paymentConfig;
     _paymentWidgetService           = paymentWidgetService;
     _routeRequestLookupInfoAccessor = routeRequestLookupInfoAccessor;
     _requestModelAccessor           = requestModelAccessor;
     _securityToken                  = securityToken;
     _urlService             = urlService;
     _pageService            = pageService;
     _distributedLockService = distributedLockService;
 }
コード例 #8
0
 public ERPPriceCalculatorImpl(DistributedMemoryCacheService distributedMemoryCacheService, DistributedLockService distributedLockService)
 {
     _distributedMemoryCacheService = distributedMemoryCacheService;
     _distributedLockService        = distributedLockService;
 }
コード例 #9
0
 /// <summary>
 /// Initialize a new instance of ResourceBootstrapService passing required connectors
 /// </summary>
 /// <param name="distributedLockService">DistributedLockService</param>
 /// <param name="minio">S3</param>
 /// <param name="mongoClient">MongoDB</param>
 /// <param name="model">RabbitMQ</param>
 public ResourceBootstrapService(DistributedLockService distributedLockService, MinioClient minio, MongoClient mongoClient)
 {
     this.minio                  = minio;
     this.mongoClient            = mongoClient;
     this.distributedLockService = distributedLockService;
 }