Exemplo n.º 1
0
 public InstallController(IInstallationLocalizationService locService,
                          IQNetFileProvider fileProvider,
                          QNetConfig config)
 {
     _locService   = locService;
     _fileProvider = fileProvider;
     _config       = config;
 }
Exemplo n.º 2
0
 public UserAgentHelper(IHttpContextAccessor httpContextAccessor,
                        IQNetFileProvider fileProvider,
                        QNetConfig nopConfig)
 {
     _httpContextAccessor = httpContextAccessor;
     _fileProvider        = fileProvider;
     _nopConfig           = nopConfig;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Register services and interfaces
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="config">Config</param>
        public void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
        {
            //register custom services
            builder.RegisterType <SendinBlueManager>().AsSelf().InstancePerLifetimeScope();
            builder.RegisterType <SendinBlueMarketingAutomationManager>().AsSelf().InstancePerLifetimeScope();

            //override services
            builder.RegisterType <SendinBlueMessageService>().As <IWorkflowMessageService>().InstancePerLifetimeScope();
            builder.RegisterType <SendinBlueEmailSender>().As <IEmailSender>().InstancePerLifetimeScope();
        }
Exemplo n.º 4
0
        public RedisCacheManager(ICacheManager perRequestCacheManager,
                                 IRedisConnectionWrapper connectionWrapper,
                                 QNetConfig config)
        {
            if (string.IsNullOrEmpty(config.RedisConnectionString))
            {
                throw new Exception("Redis connection string is empty");
            }

            _perRequestCacheManager = perRequestCacheManager;

            // ConnectionMultiplexer.Connect should only be called once and shared between callers
            _connectionWrapper = connectionWrapper;

            _db = _connectionWrapper.GetDatabase(config.RedisDatabaseId ?? (int)RedisDatabaseNumber.Cache);
        }
        protected void OneTimeInit(QNetConfig config)
        {
            if (_isInitialized)
            {
                return;
            }

            if (string.IsNullOrEmpty(config.AzureBlobStorageConnectionString))
            {
                throw new Exception("Azure connection string for BLOB is not specified");
            }

            if (string.IsNullOrEmpty(config.AzureBlobStorageContainerName))
            {
                throw new Exception("Azure container name for BLOB is not specified");
            }

            if (string.IsNullOrEmpty(config.AzureBlobStorageEndPoint))
            {
                throw new Exception("Azure end point for BLOB is not specified");
            }

            lock (_locker)
            {
                if (_isInitialized)
                {
                    return;
                }

                _azureBlobStorageAppendContainerName = config.AzureBlobStorageAppendContainerName;
                _azureBlobStorageConnectionString    = config.AzureBlobStorageConnectionString;
                _azureBlobStorageContainerName       = config.AzureBlobStorageContainerName.Trim().ToLower();
                _azureBlobStorageEndPoint            = config.AzureBlobStorageEndPoint.Trim().ToLower().TrimEnd('/');

                CreateCloudBlobContainer();

                _isInitialized = true;
            }
        }
        public AzurePictureService(IDataProvider dataProvider,
                                   IDbContext dbContext,
                                   IDownloadService downloadService,
                                   IEventPublisher eventPublisher,
                                   IHttpContextAccessor httpContextAccessor,
                                   IQNetFileProvider fileProvider,
                                   IProductAttributeParser productAttributeParser,
                                   IRepository <Picture> pictureRepository,
                                   IRepository <PictureBinary> pictureBinaryRepository,
                                   IRepository <ProductPicture> productPictureRepository,
                                   ISettingService settingService,
                                   IStaticCacheManager cacheManager,
                                   IUrlRecordService urlRecordService,
                                   IWebHelper webHelper,
                                   MediaSettings mediaSettings,
                                   QNetConfig config)
            : base(dataProvider,
                   dbContext,
                   downloadService,
                   eventPublisher,
                   httpContextAccessor,
                   fileProvider,
                   productAttributeParser,
                   pictureRepository,
                   pictureBinaryRepository,
                   productPictureRepository,
                   settingService,
                   urlRecordService,
                   webHelper,
                   mediaSettings)
        {
            _cacheManager  = cacheManager;
            _mediaSettings = mediaSettings;

            OneTimeInit(config);
        }
Exemplo n.º 7
0
 /// <summary>
 /// Register services and interfaces
 /// </summary>
 /// <param name="builder">Container builder</param>
 /// <param name="typeFinder">Type finder</param>
 /// <param name="config">Config</param>
 public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
 {
     //cache managers
     builder.RegisterType <TestCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").SingleInstance();
 }
Exemplo n.º 8
0
        /// <summary>
        /// Register services and interfaces
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="config">Config</param>
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
        {
            //installation localization service
            builder.RegisterType <InstallationLocalizationService>().As <IInstallationLocalizationService>().InstancePerLifetimeScope();

            //common factories
            builder.RegisterType <AclSupportedModelFactory>().As <IAclSupportedModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <DiscountSupportedModelFactory>().As <IDiscountSupportedModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <LocalizedModelFactory>().As <ILocalizedModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <StoreMappingSupportedModelFactory>().As <IStoreMappingSupportedModelFactory>().InstancePerLifetimeScope();

            //admin factories
            builder.RegisterType <BaseAdminModelFactory>().As <IBaseAdminModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ActivityLogModelFactory>().As <IActivityLogModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <AddressAttributeModelFactory>().As <IAddressAttributeModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <AffiliateModelFactory>().As <IAffiliateModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <BlogModelFactory>().As <IBlogModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <CampaignModelFactory>().As <ICampaignModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <CategoryModelFactory>().As <ICategoryModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <CheckoutAttributeModelFactory>().As <ICheckoutAttributeModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <CommonModelFactory>().As <ICommonModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <CountryModelFactory>().As <ICountryModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <CurrencyModelFactory>().As <ICurrencyModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerAttributeModelFactory>().As <ICustomerAttributeModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerModelFactory>().As <ICustomerModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerRoleModelFactory>().As <ICustomerRoleModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <DiscountModelFactory>().As <IDiscountModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <EmailAccountModelFactory>().As <IEmailAccountModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ExternalAuthenticationMethodModelFactory>().As <IExternalAuthenticationMethodModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ForumModelFactory>().As <IForumModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <GiftCardModelFactory>().As <IGiftCardModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <HomeModelFactory>().As <IHomeModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <LanguageModelFactory>().As <ILanguageModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <LogModelFactory>().As <ILogModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ManufacturerModelFactory>().As <IManufacturerModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <MeasureModelFactory>().As <IMeasureModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <MessageTemplateModelFactory>().As <IMessageTemplateModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <NewsletterSubscriptionModelFactory>().As <INewsletterSubscriptionModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <NewsModelFactory>().As <INewsModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <OrderModelFactory>().As <IOrderModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <PaymentModelFactory>().As <IPaymentModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <PluginModelFactory>().As <IPluginModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <PollModelFactory>().As <IPollModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ProductModelFactory>().As <IProductModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ProductAttributeModelFactory>().As <IProductAttributeModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ProductReviewModelFactory>().As <IProductReviewModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ReportModelFactory>().As <IReportModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <QueuedEmailModelFactory>().As <IQueuedEmailModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <RecurringPaymentModelFactory>().As <IRecurringPaymentModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ReturnRequestModelFactory>().As <IReturnRequestModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ReviewTypeModelFactory>().As <IReviewTypeModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ScheduleTaskModelFactory>().As <IScheduleTaskModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <SecurityModelFactory>().As <ISecurityModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <SettingModelFactory>().As <ISettingModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ShippingModelFactory>().As <IShippingModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <ShoppingCartModelFactory>().As <IShoppingCartModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <SpecificationAttributeModelFactory>().As <ISpecificationAttributeModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <StoreModelFactory>().As <IStoreModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <TaxModelFactory>().As <ITaxModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <TemplateModelFactory>().As <ITemplateModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <TopicModelFactory>().As <ITopicModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <VendorAttributeModelFactory>().As <IVendorAttributeModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <VendorModelFactory>().As <IVendorModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <WidgetModelFactory>().As <IWidgetModelFactory>().InstancePerLifetimeScope();

            //factories
            builder.RegisterType <Factories.AddressModelFactory>().As <Factories.IAddressModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.BlogModelFactory>().As <Factories.IBlogModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.CatalogModelFactory>().As <Factories.ICatalogModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.CheckoutModelFactory>().As <Factories.ICheckoutModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.CommonModelFactory>().As <Factories.ICommonModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.CountryModelFactory>().As <Factories.ICountryModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.CustomerModelFactory>().As <Factories.ICustomerModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.ForumModelFactory>().As <Factories.IForumModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.ExternalAuthenticationModelFactory>().As <Factories.IExternalAuthenticationModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.NewsModelFactory>().As <Factories.INewsModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.NewsletterModelFactory>().As <Factories.INewsletterModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.OrderModelFactory>().As <Factories.IOrderModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.PollModelFactory>().As <Factories.IPollModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.PrivateMessagesModelFactory>().As <Factories.IPrivateMessagesModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.ProductModelFactory>().As <Factories.IProductModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.ProfileModelFactory>().As <Factories.IProfileModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.ReturnRequestModelFactory>().As <Factories.IReturnRequestModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.ShoppingCartModelFactory>().As <Factories.IShoppingCartModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.TopicModelFactory>().As <Factories.ITopicModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.VendorModelFactory>().As <Factories.IVendorModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <Factories.WidgetModelFactory>().As <Factories.IWidgetModelFactory>().InstancePerLifetimeScope();
        }
Exemplo n.º 9
0
 public CommonModelFactory(AdminAreaSettings adminAreaSettings,
                           CatalogSettings catalogSettings,
                           CurrencySettings currencySettings,
                           IActionContextAccessor actionContextAccessor,
                           IAuthenticationPluginManager authenticationPluginManager,
                           ICurrencyService currencyService,
                           ICustomerService customerService,
                           IDateTimeHelper dateTimeHelper,
                           IQNetFileProvider fileProvider,
                           IExchangeRatePluginManager exchangeRatePluginManager,
                           IHttpContextAccessor httpContextAccessor,
                           ILanguageService languageService,
                           ILocalizationService localizationService,
                           IMaintenanceService maintenanceService,
                           IMeasureService measureService,
                           IOrderService orderService,
                           IPaymentPluginManager paymentPluginManager,
                           IPickupPluginManager pickupPluginManager,
                           IPluginService pluginService,
                           IProductService productService,
                           IReturnRequestService returnRequestService,
                           ISearchTermService searchTermService,
                           IShippingPluginManager shippingPluginManager,
                           IStaticCacheManager cacheManager,
                           IStoreContext storeContext,
                           IStoreService storeService,
                           ITaxPluginManager taxPluginManager,
                           IUrlHelperFactory urlHelperFactory,
                           IUrlRecordService urlRecordService,
                           IWebHelper webHelper,
                           IWidgetPluginManager widgetPluginManager,
                           IWorkContext workContext,
                           MeasureSettings measureSettings,
                           QNetConfig nopConfig,
                           QNetHttpClient nopHttpClient,
                           ProxySettings proxySettings)
 {
     _adminAreaSettings           = adminAreaSettings;
     _catalogSettings             = catalogSettings;
     _currencySettings            = currencySettings;
     _actionContextAccessor       = actionContextAccessor;
     _authenticationPluginManager = authenticationPluginManager;
     _currencyService             = currencyService;
     _customerService             = customerService;
     _dateTimeHelper            = dateTimeHelper;
     _exchangeRatePluginManager = exchangeRatePluginManager;
     _httpContextAccessor       = httpContextAccessor;
     _languageService           = languageService;
     _localizationService       = localizationService;
     _maintenanceService        = maintenanceService;
     _measureService            = measureService;
     _fileProvider          = fileProvider;
     _orderService          = orderService;
     _paymentPluginManager  = paymentPluginManager;
     _pickupPluginManager   = pickupPluginManager;
     _pluginService         = pluginService;
     _productService        = productService;
     _returnRequestService  = returnRequestService;
     _searchTermService     = searchTermService;
     _shippingPluginManager = shippingPluginManager;
     _cacheManager          = cacheManager;
     _storeContext          = storeContext;
     _storeService          = storeService;
     _taxPluginManager      = taxPluginManager;
     _urlHelperFactory      = urlHelperFactory;
     _urlRecordService      = urlRecordService;
     _webHelper             = webHelper;
     _widgetPluginManager   = widgetPluginManager;
     _workContext           = workContext;
     _measureSettings       = measureSettings;
     _nopConfig             = nopConfig;
     _nopHttpClient         = nopHttpClient;
     _proxySettings         = proxySettings;
 }
Exemplo n.º 10
0
 /// <summary>
 /// Register services and interfaces
 /// </summary>
 /// <param name="builder">Container builder</param>
 /// <param name="typeFinder">Type finder</param>
 /// <param name="config">Config</param>
 public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
 {
     //register UPSService
     builder.RegisterType <UPSService>().AsSelf().InstancePerLifetimeScope();
 }
        /// <summary>
        /// Register services and interfaces
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="config">Config</param>
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
        {
            //register service manager
            builder.RegisterType <QualpayManager>().AsSelf().InstancePerLifetimeScope();

            //register custom factories
            builder.RegisterType <QualpayCustomerModelFactory>().AsSelf().InstancePerLifetimeScope();
        }
Exemplo n.º 12
0
 public RedisPluginsInfo(IQNetFileProvider fileProvider, IRedisConnectionWrapper connectionWrapper, QNetConfig config)
     : base(fileProvider)
 {
     _db = connectionWrapper.GetDatabase(config.RedisDatabaseId ?? (int)RedisDatabaseNumber.Plugin);
 }
Exemplo n.º 13
0
        /// <summary>
        /// Register services and interfaces
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="config">Config</param>
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
        {
            //register overridden services and factories
            builder.RegisterType <OverriddenOrderProcessingService>().As <IOrderProcessingService>().InstancePerLifetimeScope();
            builder.RegisterType <OverriddenOrderTotalCalculationService>().As <IOrderTotalCalculationService>().InstancePerLifetimeScope();
            builder.RegisterType <OverriddenShoppingCartModelFactory>().As <Web.Factories.IShoppingCartModelFactory>().InstancePerLifetimeScope();
            builder.RegisterType <OverriddenTaxModelFactory>().As <ITaxModelFactory>().InstancePerLifetimeScope();

            //register custom services
            builder.RegisterType <AvalaraTaxManager>().AsSelf().InstancePerLifetimeScope();
            builder.RegisterType <TaxTransactionLogService>().AsSelf().InstancePerLifetimeScope();

            //register custom data context
            builder.RegisterPluginDataContext <TaxTransactionLogObjectContext>(AvalaraTaxDefaults.ObjectContextName);
            builder.RegisterType <EfRepository <TaxTransactionLog> >().As <IRepository <TaxTransactionLog> >()
            .WithParameter(ResolvedParameter.ForNamed <IDbContext>(AvalaraTaxDefaults.ObjectContextName))
            .InstancePerLifetimeScope();
        }
Exemplo n.º 14
0
        /// <summary>
        /// Register services and interfaces
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="config">Config</param>
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
        {
            builder.RegisterType <FixedOrByCountryStateZipTaxProvider>().As <ITaxProvider>().InstancePerLifetimeScope();
            builder.RegisterType <CountryStateZipService>().As <ICountryStateZipService>().InstancePerLifetimeScope();

            //data context
            builder.RegisterPluginDataContext <CountryStateZipObjectContext>("nop_object_context_tax_country_state_zip");

            //override required repository with our custom context
            builder.RegisterType <EfRepository <TaxRate> >().As <IRepository <TaxRate> >()
            .WithParameter(ResolvedParameter.ForNamed <IDbContext>("nop_object_context_tax_country_state_zip"))
            .InstancePerLifetimeScope();
        }
Exemplo n.º 15
0
        /// <summary>
        /// Register services and interfaces
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="config">Config</param>
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
        {
            builder.RegisterType <StorePickupPointService>().As <IStorePickupPointService>().InstancePerLifetimeScope();
            builder.RegisterType <StorePickupPointModelFactory>().As <IStorePickupPointModelFactory>().InstancePerLifetimeScope();

            //data context
            builder.RegisterPluginDataContext <StorePickupPointObjectContext>("nop_object_context_pickup_in_store-pickup");

            //override required repository with our custom context
            builder.RegisterType <EfRepository <StorePickupPoint> >().As <IRepository <StorePickupPoint> >()
            .WithParameter(ResolvedParameter.ForNamed <IDbContext>("nop_object_context_pickup_in_store-pickup"))
            .InstancePerLifetimeScope();
        }
        /// <summary>
        /// Register services and interfaces
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="config">Config</param>
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
        {
            //file provider
            builder.RegisterType <QNetFileProvider>().As <IQNetFileProvider>().InstancePerLifetimeScope();

            //web helper
            builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope();

            //user agent helper
            builder.RegisterType <UserAgentHelper>().As <IUserAgentHelper>().InstancePerLifetimeScope();

            //data layer
            builder.RegisterType <EfDataProviderManager>().As <IDataProviderManager>().InstancePerDependency();
            builder.Register(context => context.Resolve <IDataProviderManager>().DataProvider).As <IDataProvider>().InstancePerDependency();
            builder.Register(context => new QNetObjectContext(context.Resolve <DbContextOptions <QNetObjectContext> >()))
            .As <IDbContext>().InstancePerLifetimeScope();

            //repositories
            builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope();

            //plugins
            builder.RegisterType <PluginService>().As <IPluginService>().InstancePerLifetimeScope();
            builder.RegisterType <OfficialFeedManager>().AsSelf().InstancePerLifetimeScope();

            //cache manager
            builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().InstancePerLifetimeScope();

            //redis connection wrapper
            if (config.RedisEnabled)
            {
                builder.RegisterType <RedisConnectionWrapper>()
                .As <ILocker>()
                .As <IRedisConnectionWrapper>()
                .SingleInstance();
            }

            //static cache manager
            if (config.RedisEnabled && config.UseRedisForCaching)
            {
                builder.RegisterType <RedisCacheManager>().As <IStaticCacheManager>().InstancePerLifetimeScope();
            }
            else
            {
                builder.RegisterType <MemoryCacheManager>()
                .As <ILocker>()
                .As <IStaticCacheManager>()
                .SingleInstance();
            }

            //work context
            builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope();

            //store context
            builder.RegisterType <WebStoreContext>().As <IStoreContext>().InstancePerLifetimeScope();

            //services
            builder.RegisterType <BackInStockSubscriptionService>().As <IBackInStockSubscriptionService>().InstancePerLifetimeScope();
            builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerLifetimeScope();
            builder.RegisterType <CompareProductsService>().As <ICompareProductsService>().InstancePerLifetimeScope();
            builder.RegisterType <RecentlyViewedProductsService>().As <IRecentlyViewedProductsService>().InstancePerLifetimeScope();
            builder.RegisterType <ManufacturerService>().As <IManufacturerService>().InstancePerLifetimeScope();
            builder.RegisterType <PriceFormatter>().As <IPriceFormatter>().InstancePerLifetimeScope();
            builder.RegisterType <ProductAttributeFormatter>().As <IProductAttributeFormatter>().InstancePerLifetimeScope();
            builder.RegisterType <ProductAttributeParser>().As <IProductAttributeParser>().InstancePerLifetimeScope();
            builder.RegisterType <ProductAttributeService>().As <IProductAttributeService>().InstancePerLifetimeScope();
            builder.RegisterType <ProductService>().As <IProductService>().InstancePerLifetimeScope();
            builder.RegisterType <CopyProductService>().As <ICopyProductService>().InstancePerLifetimeScope();
            builder.RegisterType <SpecificationAttributeService>().As <ISpecificationAttributeService>().InstancePerLifetimeScope();
            builder.RegisterType <ProductTemplateService>().As <IProductTemplateService>().InstancePerLifetimeScope();
            builder.RegisterType <CategoryTemplateService>().As <ICategoryTemplateService>().InstancePerLifetimeScope();
            builder.RegisterType <ManufacturerTemplateService>().As <IManufacturerTemplateService>().InstancePerLifetimeScope();
            builder.RegisterType <TopicTemplateService>().As <ITopicTemplateService>().InstancePerLifetimeScope();
            builder.RegisterType <ProductTagService>().As <IProductTagService>().InstancePerLifetimeScope();
            builder.RegisterType <AddressAttributeFormatter>().As <IAddressAttributeFormatter>().InstancePerLifetimeScope();
            builder.RegisterType <AddressAttributeParser>().As <IAddressAttributeParser>().InstancePerLifetimeScope();
            builder.RegisterType <AddressAttributeService>().As <IAddressAttributeService>().InstancePerLifetimeScope();
            builder.RegisterType <AddressService>().As <IAddressService>().InstancePerLifetimeScope();
            builder.RegisterType <AffiliateService>().As <IAffiliateService>().InstancePerLifetimeScope();
            builder.RegisterType <VendorService>().As <IVendorService>().InstancePerLifetimeScope();
            builder.RegisterType <VendorAttributeFormatter>().As <IVendorAttributeFormatter>().InstancePerLifetimeScope();
            builder.RegisterType <VendorAttributeParser>().As <IVendorAttributeParser>().InstancePerLifetimeScope();
            builder.RegisterType <VendorAttributeService>().As <IVendorAttributeService>().InstancePerLifetimeScope();
            builder.RegisterType <SearchTermService>().As <ISearchTermService>().InstancePerLifetimeScope();
            builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope();
            builder.RegisterType <FulltextService>().As <IFulltextService>().InstancePerLifetimeScope();
            builder.RegisterType <MaintenanceService>().As <IMaintenanceService>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerAttributeFormatter>().As <ICustomerAttributeFormatter>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerAttributeParser>().As <ICustomerAttributeParser>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerAttributeService>().As <ICustomerAttributeService>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerService>().As <ICustomerService>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerRegistrationService>().As <ICustomerRegistrationService>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerReportService>().As <ICustomerReportService>().InstancePerLifetimeScope();
            builder.RegisterType <PermissionService>().As <IPermissionService>().InstancePerLifetimeScope();
            builder.RegisterType <AclService>().As <IAclService>().InstancePerLifetimeScope();
            builder.RegisterType <PriceCalculationService>().As <IPriceCalculationService>().InstancePerLifetimeScope();
            builder.RegisterType <GeoLookupService>().As <IGeoLookupService>().InstancePerLifetimeScope();
            builder.RegisterType <CountryService>().As <ICountryService>().InstancePerLifetimeScope();
            builder.RegisterType <CurrencyService>().As <ICurrencyService>().InstancePerLifetimeScope();
            builder.RegisterType <MeasureService>().As <IMeasureService>().InstancePerLifetimeScope();
            builder.RegisterType <StateProvinceService>().As <IStateProvinceService>().InstancePerLifetimeScope();
            builder.RegisterType <StoreService>().As <IStoreService>().InstancePerLifetimeScope();
            builder.RegisterType <StoreMappingService>().As <IStoreMappingService>().InstancePerLifetimeScope();
            builder.RegisterType <DiscountService>().As <IDiscountService>().InstancePerLifetimeScope();
            builder.RegisterType <LocalizationService>().As <ILocalizationService>().InstancePerLifetimeScope();
            builder.RegisterType <LocalizedEntityService>().As <ILocalizedEntityService>().InstancePerLifetimeScope();
            builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope();
            builder.RegisterType <DownloadService>().As <IDownloadService>().InstancePerLifetimeScope();
            builder.RegisterType <MessageTemplateService>().As <IMessageTemplateService>().InstancePerLifetimeScope();
            builder.RegisterType <QueuedEmailService>().As <IQueuedEmailService>().InstancePerLifetimeScope();
            builder.RegisterType <NewsLetterSubscriptionService>().As <INewsLetterSubscriptionService>().InstancePerLifetimeScope();
            builder.RegisterType <NotificationService>().As <INotificationService>().InstancePerLifetimeScope();
            builder.RegisterType <CampaignService>().As <ICampaignService>().InstancePerLifetimeScope();
            builder.RegisterType <EmailAccountService>().As <IEmailAccountService>().InstancePerLifetimeScope();
            builder.RegisterType <WorkflowMessageService>().As <IWorkflowMessageService>().InstancePerLifetimeScope();
            builder.RegisterType <MessageTokenProvider>().As <IMessageTokenProvider>().InstancePerLifetimeScope();
            builder.RegisterType <Tokenizer>().As <ITokenizer>().InstancePerLifetimeScope();
            builder.RegisterType <SmtpBuilder>().As <ISmtpBuilder>().InstancePerLifetimeScope();
            builder.RegisterType <EmailSender>().As <IEmailSender>().InstancePerLifetimeScope();
            builder.RegisterType <CheckoutAttributeFormatter>().As <ICheckoutAttributeFormatter>().InstancePerLifetimeScope();
            builder.RegisterType <CheckoutAttributeParser>().As <ICheckoutAttributeParser>().InstancePerLifetimeScope();
            builder.RegisterType <CheckoutAttributeService>().As <ICheckoutAttributeService>().InstancePerLifetimeScope();
            builder.RegisterType <GiftCardService>().As <IGiftCardService>().InstancePerLifetimeScope();
            builder.RegisterType <OrderService>().As <IOrderService>().InstancePerLifetimeScope();
            builder.RegisterType <OrderReportService>().As <IOrderReportService>().InstancePerLifetimeScope();
            builder.RegisterType <OrderProcessingService>().As <IOrderProcessingService>().InstancePerLifetimeScope();
            builder.RegisterType <OrderTotalCalculationService>().As <IOrderTotalCalculationService>().InstancePerLifetimeScope();
            builder.RegisterType <ReturnRequestService>().As <IReturnRequestService>().InstancePerLifetimeScope();
            builder.RegisterType <RewardPointService>().As <IRewardPointService>().InstancePerLifetimeScope();
            builder.RegisterType <ShoppingCartService>().As <IShoppingCartService>().InstancePerLifetimeScope();
            builder.RegisterType <CustomNumberFormatter>().As <ICustomNumberFormatter>().InstancePerLifetimeScope();
            builder.RegisterType <PaymentService>().As <IPaymentService>().InstancePerLifetimeScope();
            builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope();
            builder.RegisterType <CookieAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope();
            builder.RegisterType <UrlRecordService>().As <IUrlRecordService>().InstancePerLifetimeScope();
            builder.RegisterType <ShipmentService>().As <IShipmentService>().InstancePerLifetimeScope();
            builder.RegisterType <ShippingService>().As <IShippingService>().InstancePerLifetimeScope();
            builder.RegisterType <DateRangeService>().As <IDateRangeService>().InstancePerLifetimeScope();
            builder.RegisterType <TaxCategoryService>().As <ITaxCategoryService>().InstancePerLifetimeScope();
            builder.RegisterType <TaxService>().As <ITaxService>().InstancePerLifetimeScope();
            builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope();
            builder.RegisterType <CustomerActivityService>().As <ICustomerActivityService>().InstancePerLifetimeScope();
            builder.RegisterType <ForumService>().As <IForumService>().InstancePerLifetimeScope();
            builder.RegisterType <GdprService>().As <IGdprService>().InstancePerLifetimeScope();
            builder.RegisterType <PollService>().As <IPollService>().InstancePerLifetimeScope();
            builder.RegisterType <BlogService>().As <IBlogService>().InstancePerLifetimeScope();
            builder.RegisterType <TopicService>().As <ITopicService>().InstancePerLifetimeScope();
            builder.RegisterType <NewsService>().As <INewsService>().InstancePerLifetimeScope();
            builder.RegisterType <DateTimeHelper>().As <IDateTimeHelper>().InstancePerLifetimeScope();
            builder.RegisterType <SitemapGenerator>().As <ISitemapGenerator>().InstancePerLifetimeScope();
            builder.RegisterType <PageHeadBuilder>().As <IPageHeadBuilder>().InstancePerLifetimeScope();
            builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerLifetimeScope();
            builder.RegisterType <ExportManager>().As <IExportManager>().InstancePerLifetimeScope();
            builder.RegisterType <ImportManager>().As <IImportManager>().InstancePerLifetimeScope();
            builder.RegisterType <PdfService>().As <IPdfService>().InstancePerLifetimeScope();
            builder.RegisterType <UploadService>().As <IUploadService>().InstancePerLifetimeScope();
            builder.RegisterType <ThemeProvider>().As <IThemeProvider>().InstancePerLifetimeScope();
            builder.RegisterType <ThemeContext>().As <IThemeContext>().InstancePerLifetimeScope();
            builder.RegisterType <ExternalAuthenticationService>().As <IExternalAuthenticationService>().InstancePerLifetimeScope();
            builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance();
            builder.RegisterType <ReviewTypeService>().As <IReviewTypeService>().SingleInstance();
            builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance();
            builder.RegisterType <SettingService>().As <ISettingService>().InstancePerLifetimeScope();

            //plugin managers
            builder.RegisterGeneric(typeof(PluginManager <>)).As(typeof(IPluginManager <>)).InstancePerLifetimeScope();
            builder.RegisterType <AuthenticationPluginManager>().As <IAuthenticationPluginManager>().InstancePerLifetimeScope();
            builder.RegisterType <WidgetPluginManager>().As <IWidgetPluginManager>().InstancePerLifetimeScope();
            builder.RegisterType <ExchangeRatePluginManager>().As <IExchangeRatePluginManager>().InstancePerLifetimeScope();
            builder.RegisterType <DiscountPluginManager>().As <IDiscountPluginManager>().InstancePerLifetimeScope();
            builder.RegisterType <PaymentPluginManager>().As <IPaymentPluginManager>().InstancePerLifetimeScope();
            builder.RegisterType <PickupPluginManager>().As <IPickupPluginManager>().InstancePerLifetimeScope();
            builder.RegisterType <ShippingPluginManager>().As <IShippingPluginManager>().InstancePerLifetimeScope();
            builder.RegisterType <TaxPluginManager>().As <ITaxPluginManager>().InstancePerLifetimeScope();

            builder.RegisterType <ActionContextAccessor>().As <IActionContextAccessor>().InstancePerLifetimeScope();

            //register all settings
            builder.RegisterSource(new SettingsSource());

            //picture service
            if (config.AzureBlobStorageEnabled)
            {
                builder.RegisterType <AzurePictureService>().As <IPictureService>().InstancePerLifetimeScope();
            }
            else
            {
                builder.RegisterType <PictureService>().As <IPictureService>().InstancePerLifetimeScope();
            }

            //roxy file manager service
            builder.Register(context =>
            {
                var pictureService = context.Resolve <IPictureService>();

                return(EngineContext.Current.ResolveUnregistered(pictureService.StoreInDb
                    ? typeof(DatabaseRoxyFilemanService)
                    : typeof(FileRoxyFilemanService)));
            }).As <IRoxyFilemanService>().InstancePerLifetimeScope();

            //installation service
            if (!DataSettingsManager.DatabaseIsInstalled)
            {
                if (config.UseFastInstallationService)
                {
                    builder.RegisterType <SqlFileInstallationService>().As <IInstallationService>().InstancePerLifetimeScope();
                }
                else
                {
                    builder.RegisterType <CodeFirstInstallationService>().As <IInstallationService>().InstancePerLifetimeScope();
                }
            }

            //event consumers
            var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList();

            foreach (var consumer in consumers)
            {
                builder.RegisterType(consumer)
                .As(consumer.FindInterfaces((type, criteria) =>
                {
                    var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition());
                    return(isMatch);
                }, typeof(IConsumer <>)))
                .InstancePerLifetimeScope();
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// Add and configure services
        /// </summary>
        /// <param name="services">Collection of service descriptors</param>
        /// <param name="configuration">Configuration of the application</param>
        /// <param name="nopConfig">QNet configuration parameters</param>
        /// <returns>Service provider</returns>
        public IServiceProvider ConfigureServices(IServiceCollection services, IConfiguration configuration, QNetConfig nopConfig)
        {
            //find startup configurations provided by other assemblies
            var typeFinder            = new WebAppTypeFinder();
            var startupConfigurations = typeFinder.FindClassesOfType <IQNetStartup>();

            //create and sort instances of startup configurations
            var instances = startupConfigurations
                            .Select(startup => (IQNetStartup)Activator.CreateInstance(startup))
                            .OrderBy(startup => startup.Order);

            //configure services
            foreach (var instance in instances)
            {
                instance.ConfigureServices(services, configuration);
            }

            //register mapper configurations
            AddAutoMapper(services, typeFinder);

            //register dependencies
            RegisterDependencies(services, typeFinder, nopConfig);

            //run startup tasks
            RunStartupTasks(typeFinder);

            //resolve assemblies here. otherwise, plugins can throw an exception when rendering views
            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;

            return(_serviceProvider);
        }
Exemplo n.º 18
0
 public RedisConnectionWrapper(QNetConfig config)
 {
     _config           = config;
     _connectionString = new Lazy <string>(GetConnectionString);
     _redisLockFactory = CreateRedisLockFactory();
 }
Exemplo n.º 19
0
        /// <summary>
        /// Register dependencies
        /// </summary>
        /// <param name="services">Collection of service descriptors</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="nopConfig">QNet configuration parameters</param>
        protected virtual IServiceProvider RegisterDependencies(IServiceCollection services, ITypeFinder typeFinder, QNetConfig nopConfig)
        {
            var containerBuilder = new ContainerBuilder();

            //register engine
            containerBuilder.RegisterInstance(this).As <IEngine>().SingleInstance();

            //register type finder
            containerBuilder.RegisterInstance(typeFinder).As <ITypeFinder>().SingleInstance();

            //populate Autofac container builder with the set of registered service descriptors
            containerBuilder.Populate(services);

            //find dependency registrars provided by other assemblies
            var dependencyRegistrars = typeFinder.FindClassesOfType <IDependencyRegistrar>();

            //create and sort instances of dependency registrars
            var instances = dependencyRegistrars
                            .Select(dependencyRegistrar => (IDependencyRegistrar)Activator.CreateInstance(dependencyRegistrar))
                            .OrderBy(dependencyRegistrar => dependencyRegistrar.Order);

            //register all provided dependencies
            foreach (var dependencyRegistrar in instances)
            {
                dependencyRegistrar.Register(containerBuilder, typeFinder, nopConfig);
            }

            //create service provider
            _serviceProvider = new AutofacServiceProvider(containerBuilder.Build());

            return(_serviceProvider);
        }
 /// <summary>
 /// Register services and interfaces
 /// </summary>
 /// <param name="builder">Container builder</param>
 /// <param name="typeFinder">Type finder</param>
 /// <param name="config">Config</param>
 public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
 {
     //register service manager
     builder.RegisterType <SquarePaymentManager>().AsSelf().InstancePerLifetimeScope();
 }
        /// <summary>
        /// Register services and interfaces
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="config">Config</param>
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, QNetConfig config)
        {
            builder.RegisterType <ShippingByWeightByTotalService>().As <IShippingByWeightByTotalService>().InstancePerLifetimeScope();

            //data context
            builder.RegisterPluginDataContext <ShippingByWeightByTotalObjectContext>("nop_object_context_shipping_weight_total_zip");

            //override required repository with our custom context
            builder.RegisterType <EfRepository <ShippingByWeightByTotalRecord> >().As <IRepository <ShippingByWeightByTotalRecord> >()
            .WithParameter(ResolvedParameter.ForNamed <IDbContext>("nop_object_context_shipping_weight_total_zip"))
            .InstancePerLifetimeScope();
        }