コード例 #1
0
        public PageHeadBuilder(CachingSettings cachingSettings,
                               CommonSettings commonSettings,
                               IActionContextAccessor actionContextAccessor,
                               ICacheKeyService cacheKeyService,
                               IWebHostEnvironment webHostEnvironment,
                               ISmiFileProvider fileProvider,
                               IStaticCacheManager staticCacheManager,
                               IUrlHelperFactory urlHelperFactory,
                               IUrlRecordService urlRecordService,
                               SeoSettings seoSettings
                               )
        {
            _processor             = new BundleFileProcessor();
            _cachingSettings       = cachingSettings;
            _commonSettings        = commonSettings;
            _actionContextAccessor = actionContextAccessor;
            _cacheKeyService       = cacheKeyService;
            _webHostEnvironment    = webHostEnvironment;
            _fileProvider          = fileProvider;
            _staticCacheManager    = staticCacheManager;
            _urlHelperFactory      = urlHelperFactory;
            _urlRecordService      = urlRecordService;
            _seoSettings           = seoSettings;

            _titleParts           = new List <string>();
            _metaDescriptionParts = new List <string>();
            _metaKeywordParts     = new List <string>();
            _scriptParts          = new Dictionary <ResourceLocation, List <ScriptReferenceMeta> >();
            _inlineScriptParts    = new Dictionary <ResourceLocation, List <string> >();
            _cssParts             = new Dictionary <ResourceLocation, List <CssReferenceMeta> >();
            _canonicalUrlParts    = new List <string>();
            _headCustomParts      = new List <string>();
            _pageCssClassParts    = new List <string>();
        }
コード例 #2
0
        static ApplicationPartManagerExtensions()
        {
            //we use the default file provider, since the DI isn't initialized yet
            _fileProvider = CommonHelper.DefaultFileProvider;

            _baseAppLibraries = new List <string>();

            //get all libraries from /bin/{version}/ directory
            _baseAppLibraries.AddRange(_fileProvider.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll")
                                       .Select(fileName => _fileProvider.GetFileName(fileName)));

            //get all libraries from base site directory
            if (!AppDomain.CurrentDomain.BaseDirectory.Equals(Environment.CurrentDirectory, StringComparison.InvariantCultureIgnoreCase))
            {
                _baseAppLibraries.AddRange(_fileProvider.GetFiles(Environment.CurrentDirectory, "*.dll")
                                           .Select(fileName => _fileProvider.GetFileName(fileName)));
            }

            //get all libraries from refs directory
            var refsPathName = _fileProvider.Combine(Environment.CurrentDirectory, SmiPluginDefaults.RefsPathName);

            if (_fileProvider.DirectoryExists(refsPathName))
            {
                _baseAppLibraries.AddRange(_fileProvider.GetFiles(refsPathName, "*.dll")
                                           .Select(fileName => _fileProvider.GetFileName(fileName)));
            }
        }
コード例 #3
0
 public PictureService(ISmiDataProvider dataProvider,
                       IDownloadService downloadService,
                       IEventPublisher eventPublisher,
                       IHttpContextAccessor httpContextAccessor,
                       ISmiFileProvider fileProvider,
                       IProductAttributeParser productAttributeParser,
                       IRepository <Picture> pictureRepository,
                       IRepository <PictureBinary> pictureBinaryRepository,
                       IRepository <ProductPicture> productPictureRepository,
                       ISettingService settingService,
                       IUrlRecordService urlRecordService,
                       IWebHelper webHelper,
                       MediaSettings mediaSettings)
 {
     _dataProvider             = dataProvider;
     _downloadService          = downloadService;
     _eventPublisher           = eventPublisher;
     _httpContextAccessor      = httpContextAccessor;
     _fileProvider             = fileProvider;
     _productAttributeParser   = productAttributeParser;
     _pictureRepository        = pictureRepository;
     _pictureBinaryRepository  = pictureBinaryRepository;
     _productPictureRepository = productPictureRepository;
     _settingService           = settingService;
     _urlRecordService         = urlRecordService;
     _webHelper     = webHelper;
     _mediaSettings = mediaSettings;
 }
コード例 #4
0
 public UploadService(ISmiFileProvider fileProvider,
                      IStoreContext storeContext,
                      IThemeProvider themeProvider)
 {
     _fileProvider  = fileProvider;
     _storeContext  = storeContext;
     _themeProvider = themeProvider;
 }
コード例 #5
0
 public UserAgentHelper(IHttpContextAccessor httpContextAccessor,
                        ISmiFileProvider fileProvider,
                        SmiConfig SmiConfig)
 {
     _httpContextAccessor = httpContextAccessor;
     _fileProvider        = fileProvider;
     _SmiConfig           = SmiConfig;
 }
コード例 #6
0
 public SendinBlueEmailSender(IDownloadService downloadService,
                              ISmiFileProvider fileProvider,
                              ISmtpBuilder smtpBuilder,
                              IStoreContext storeContext,
                              SendinBlueSettings sendinBlueSettings) : base(downloadService, fileProvider, smtpBuilder)
 {
     _storeContext       = storeContext;
     _sendinBlueSettings = sendinBlueSettings;
 }
コード例 #7
0
 public FileRoxyFilemanService(IWebHostEnvironment webHostEnvironment,
                               IHttpContextAccessor httpContextAccessor,
                               ISmiFileProvider fileProvider,
                               IWebHelper webHelper,
                               IWorkContext workContext,
                               MediaSettings mediaSettings) : base(webHostEnvironment, httpContextAccessor, fileProvider, webHelper, workContext, mediaSettings)
 {
     _fileRootPath = null;
 }
コード例 #8
0
        /// <summary>
        /// Execute commands from a file with SQL script against the context database
        /// </summary>
        /// <param name="fileProvider">File provider</param>
        /// <param name="filePath">Path to the file</param>
        protected void ExecuteSqlScriptFromFile(ISmiFileProvider fileProvider, string filePath)
        {
            filePath = fileProvider.MapPath(filePath);
            if (!fileProvider.FileExists(filePath))
            {
                return;
            }

            ExecuteSqlScript(fileProvider.ReadAllText(filePath, Encoding.Default));
        }
コード例 #9
0
 public NivoSliderPlugin(ILocalizationService localizationService,
                         IPictureService pictureService,
                         ISettingService settingService,
                         IWebHelper webHelper,
                         ISmiFileProvider fileProvider)
 {
     _localizationService = localizationService;
     _pictureService      = pictureService;
     _settingService      = settingService;
     _webHelper           = webHelper;
     _fileProvider        = fileProvider;
 }
コード例 #10
0
 public DatabaseRoxyFilemanService(IPictureService pictureService,
                                   IRepository <Picture> pictureRepository,
                                   IWebHostEnvironment webHostEnvironment,
                                   IHttpContextAccessor httpContextAccessor,
                                   ISmiFileProvider fileProvider,
                                   IWebHelper webHelper,
                                   IWorkContext workContext,
                                   MediaSettings mediaSettings) : base(webHostEnvironment, httpContextAccessor, fileProvider, webHelper, workContext, mediaSettings)
 {
     _pictureService    = pictureService;
     _pictureRepository = pictureRepository;
 }
コード例 #11
0
 public WebHelper(HostingConfig hostingConfig,
                  IActionContextAccessor actionContextAccessor,
                  IHostApplicationLifetime hostApplicationLifetime,
                  IHttpContextAccessor httpContextAccessor,
                  ISmiFileProvider fileProvider,
                  IUrlHelperFactory urlHelperFactory)
 {
     _hostingConfig           = hostingConfig;
     _actionContextAccessor   = actionContextAccessor;
     _hostApplicationLifetime = hostApplicationLifetime;
     _httpContextAccessor     = httpContextAccessor;
     _fileProvider            = fileProvider;
     _urlHelperFactory        = urlHelperFactory;
 }
コード例 #12
0
 protected BaseRoxyFilemanService(IWebHostEnvironment webHostEnvironment,
                                  IHttpContextAccessor httpContextAccessor,
                                  ISmiFileProvider fileProvider,
                                  IWebHelper webHelper,
                                  IWorkContext workContext,
                                  MediaSettings mediaSettings)
 {
     _webHostEnvironment  = webHostEnvironment;
     _httpContextAccessor = httpContextAccessor;
     _fileProvider        = fileProvider;
     _webHelper           = webHelper;
     _workContext         = workContext;
     _mediaSettings       = mediaSettings;
 }
コード例 #13
0
        /// <summary>
        /// Save data settings to the file
        /// </summary>
        /// <param name="settings">Data settings</param>
        /// <param name="fileProvider">File provider</param>
        public static void SaveSettings(DataSettings settings, ISmiFileProvider fileProvider = null)
        {
            Singleton <DataSettings> .Instance = settings ?? throw new ArgumentNullException(nameof(settings));

            fileProvider ??= CommonHelper.DefaultFileProvider;
            var filePath = fileProvider.MapPath(SmiDataSettingsDefaults.FilePath);

            //create file if not exists
            fileProvider.CreateFile(filePath);

            //save data settings to the file
            var text = JsonConvert.SerializeObject(Singleton <DataSettings> .Instance, Formatting.Indented);

            fileProvider.WriteAllText(filePath, text, Encoding.UTF8);
        }
コード例 #14
0
 public PluginService(CatalogSettings catalogSettings,
                      ICustomerService customerService,
                      IMigrationManager migrationManager,
                      ILogger logger,
                      ISmiFileProvider fileProvider,
                      IWebHelper webHelper)
 {
     _catalogSettings  = catalogSettings;
     _customerService  = customerService;
     _migrationManager = migrationManager;
     _logger           = logger;
     _fileProvider     = fileProvider;
     _pluginsInfo      = Singleton <IPluginsInfo> .Instance;
     _webHelper        = webHelper;
 }
コード例 #15
0
        public AzurePictureService(ISmiDataProvider dataProvider,
                                   IDownloadService downloadService,
                                   ICacheKeyService cacheKeyService,
                                   IEventPublisher eventPublisher,
                                   IHttpContextAccessor httpContextAccessor,
                                   ISmiFileProvider fileProvider,
                                   IProductAttributeParser productAttributeParser,
                                   IRepository <Picture> pictureRepository,
                                   IRepository <PictureBinary> pictureBinaryRepository,
                                   IRepository <ProductPicture> productPictureRepository,
                                   ISettingService settingService,
                                   IStaticCacheManager staticCacheManager,
                                   IUrlRecordService urlRecordService,
                                   IWebHelper webHelper,
                                   MediaSettings mediaSettings,
                                   SmiConfig config)
            : base(dataProvider,
                   downloadService,
                   eventPublisher,
                   httpContextAccessor,
                   fileProvider,
                   productAttributeParser,
                   pictureRepository,
                   pictureBinaryRepository,
                   productPictureRepository,
                   settingService,
                   urlRecordService,
                   webHelper,
                   mediaSettings)
        {
            _cacheKeyService    = cacheKeyService;
            _staticCacheManager = staticCacheManager;
            _mediaSettings      = mediaSettings;

            OneTimeInit(config);
        }
コード例 #16
0
 public GeoLookupService(ILogger logger,
                         ISmiFileProvider fileProvider)
 {
     _logger       = logger;
     _fileProvider = fileProvider;
 }
コード例 #17
0
 public EmailSender(IDownloadService downloadService, ISmiFileProvider fileProvider, ISmtpBuilder smtpBuilder)
 {
     _downloadService = downloadService;
     _fileProvider    = fileProvider;
     _smtpBuilder     = smtpBuilder;
 }
コード例 #18
0
        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="userAgentStringsPath">User agent file path</param>
        /// <param name="crawlerOnlyUserAgentStringsPath">User agent with crawlers only file path</param>
        /// <param name="fileProvider">File provider</param>
        public BrowscapXmlHelper(string userAgentStringsPath, string crawlerOnlyUserAgentStringsPath, ISmiFileProvider fileProvider)
        {
            _fileProvider = fileProvider;

            Initialize(userAgentStringsPath, crawlerOnlyUserAgentStringsPath);
        }
コード例 #19
0
 public RedisPluginsInfo(ISmiFileProvider fileProvider, IRedisConnectionWrapper connectionWrapper, SmiConfig config)
     : base(fileProvider)
 {
     _db = connectionWrapper.GetDatabase(config.RedisDatabaseId ?? (int)RedisDatabaseNumber.Plugin);
 }
コード例 #20
0
 public ThemeProvider(ISmiFileProvider fileProvider)
 {
     _fileProvider = fileProvider;
 }
コード例 #21
0
 public MaintenanceService(ISmiFileProvider fileProvider)
 {
     _fileProvider = fileProvider;
 }
コード例 #22
0
 public WebAppTypeFinder(ISmiFileProvider fileProvider = null) : base(fileProvider)
 {
 }
コード例 #23
0
 public AppDomainTypeFinder(ISmiFileProvider fileProvider = null)
 {
     _fileProvider = fileProvider ?? CommonHelper.DefaultFileProvider;
 }
コード例 #24
0
 public PluginsInfo(ISmiFileProvider fileProvider)
 {
     _fileProvider = fileProvider;
 }
コード例 #25
0
        /// <summary>
        /// Load data settings
        /// </summary>
        /// <param name="filePath">File path; pass null to use the default settings file</param>
        /// <param name="reloadSettings">Whether to reload data, if they already loaded</param>
        /// <param name="fileProvider">File provider</param>
        /// <returns>Data settings</returns>
        public static DataSettings LoadSettings(string filePath = null, bool reloadSettings = false, ISmiFileProvider fileProvider = null)
        {
            if (!reloadSettings && Singleton <DataSettings> .Instance != null)
            {
                return(Singleton <DataSettings> .Instance);
            }

            fileProvider ??= CommonHelper.DefaultFileProvider;
            filePath ??= fileProvider.MapPath(SmiDataSettingsDefaults.FilePath);

            //check whether file exists
            if (!fileProvider.FileExists(filePath))
            {
                //if not, try to parse the file that was used in previous SmiMarketplace versions
                filePath = fileProvider.MapPath(SmiDataSettingsDefaults.ObsoleteFilePath);
                if (!fileProvider.FileExists(filePath))
                {
                    return(new DataSettings());
                }

                //get data settings from the old txt file
                var dataSettings = new DataSettings();
                using (var reader = new StringReader(fileProvider.ReadAllText(filePath, Encoding.UTF8)))
                {
                    string settingsLine;
                    while ((settingsLine = reader.ReadLine()) != null)
                    {
                        var separatorIndex = settingsLine.IndexOf(':');
                        if (separatorIndex == -1)
                        {
                            continue;
                        }

                        var key   = settingsLine.Substring(0, separatorIndex).Trim();
                        var value = settingsLine.Substring(separatorIndex + 1).Trim();

                        switch (key)
                        {
                        case "DataProvider":
                            dataSettings.DataProvider = Enum.TryParse(value, true, out DataProviderType providerType) ? providerType : DataProviderType.Unknown;
                            continue;

                        case "DataConnectionString":
                            dataSettings.ConnectionString = value;
                            continue;

                        default:
                            dataSettings.RawDataSettings.Add(key, value);
                            continue;
                        }
                    }
                }

                //save data settings to the new file
                SaveSettings(dataSettings, fileProvider);

                //and delete the old one
                fileProvider.DeleteFile(filePath);

                Singleton <DataSettings> .Instance = dataSettings;
                return(Singleton <DataSettings> .Instance);
            }

            var text = fileProvider.ReadAllText(filePath, Encoding.UTF8);

            if (string.IsNullOrEmpty(text))
            {
                return(new DataSettings());
            }

            //get data settings from the JSON file
            Singleton <DataSettings> .Instance = JsonConvert.DeserializeObject <DataSettings>(text);

            return(Singleton <DataSettings> .Instance);
        }