public ContentTypeCacheRefresher(AppCaches appCaches, IPublishedSnapshotService publishedSnapshotService, IPublishedModelFactory publishedModelFactory, IdkMap idkMap)
     : base(appCaches)
 {
     _publishedSnapshotService = publishedSnapshotService;
     _publishedModelFactory    = publishedModelFactory;
     _idkMap = idkMap;
 }
 public DataTypeCacheRefresher(AppCaches appCaches, IJsonSerializer serializer, IPublishedSnapshotService publishedSnapshotService, IPublishedModelFactory publishedModelFactory, IdkMap idkMap)
     : base(appCaches, serializer)
 {
     _publishedSnapshotService = publishedSnapshotService;
     _publishedModelFactory    = publishedModelFactory;
     _idkMap = idkMap;
 }
 public ContentCacheRefresher(AppCaches appCaches, IPublishedSnapshotService publishedSnapshotService, IdkMap idkMap, IDomainService domainService)
     : base(appCaches)
 {
     _publishedSnapshotService = publishedSnapshotService;
     _idkMap        = idkMap;
     _domainService = domainService;
 }
 public ContentCacheRefresher(CacheHelper cacheHelper, IPublishedSnapshotService publishedSnapshotService, IdkMap idkMap, IDomainService domainService)
     : base(cacheHelper)
 {
     _publishedSnapshotService = publishedSnapshotService;
     _idkMap        = idkMap;
     _domainService = domainService;
 }
Example #5
0
 public ContentTypeCacheRefresher(AppCaches appCaches, IJsonSerializer serializer, IPublishedSnapshotService publishedSnapshotService, IPublishedModelFactory publishedModelFactory, IdkMap idkMap, IContentTypeCommonRepository contentTypeCommonRepository)
     : base(appCaches, serializer)
 {
     _publishedSnapshotService = publishedSnapshotService;
     _publishedModelFactory    = publishedModelFactory;
     _idkMap = idkMap;
     _contentTypeCommonRepository = contentTypeCommonRepository;
 }
        public EntityService(IScopeProvider provider, ILogger logger, IEventMessagesFactory eventMessagesFactory, IdkMap idkMap, IEntityRepository entityRepository)
            : base(provider, logger, eventMessagesFactory)
        {
            _idkMap           = idkMap;
            _entityRepository = entityRepository;

            _objectTypes = new Dictionary <string, UmbracoObjectTypes>
            {
                { typeof(IDataType).FullName, UmbracoObjectTypes.DataType },
                { typeof(IContent).FullName, UmbracoObjectTypes.Document },
                { typeof(IContentType).FullName, UmbracoObjectTypes.DocumentType },
                { typeof(IMedia).FullName, UmbracoObjectTypes.Media },
                { typeof(IMediaType).FullName, UmbracoObjectTypes.MediaType },
                { typeof(IMember).FullName, UmbracoObjectTypes.Member },
                { typeof(IMemberType).FullName, UmbracoObjectTypes.MemberType },
            };
        }
Example #7
0
        // populate the idkmap by indexing the content cache
        // assuming that the content cache cannot be corrupted
        private void EnsureIdkMap(UmbracoContext umbracoContext)
        {
            lock (_idkMapLocker)
            {
                if (_idkMap != null)
                {
                    return;
                }

                _idkMap = ApplicationContext.Current.Services.IdkMap; // fixme inject

                // give the map a fast mapper
                _idkMap.SetMapper(UmbracoObjectTypes.Document, GetKeyForId, GetIdForKey);

                // populate the map with what we know, so far
                var xml  = GetXml(umbracoContext, false);
                var nav  = xml.CreateNavigator();
                var iter = nav.SelectDescendants(XPathNodeType.Element, true);
                _idkMap.Populate(Enumerate(iter), UmbracoObjectTypes.Document);
            }
        }
 public MemberCacheRefresher(AppCaches appCaches, IdkMap idkMap)
     : base(appCaches)
 {
     _idkMap = idkMap;
 }
Example #9
0
 public MemberCacheRefresher(AppCaches appCaches, IdkMap idkMap)
     : base(appCaches)
 {
     _idkMap = idkMap;
     _legacyMemberRefresher = new LegacyMemberCacheRefresher(this, appCaches);
 }
 public TemplateCacheRefresher(AppCaches appCaches, IdkMap idkMap)
     : base(appCaches)
 {
     _idkMap = idkMap;
 }
Example #11
0
        /// <summary>
        /// Gets a ServiceContext.
        /// </summary>
        /// <param name="scopeAccessor"></param>
        /// <param name="cache">A cache.</param>
        /// <param name="logger">A logger.</param>
        /// <param name="globalSettings"></param>
        /// <param name="eventMessagesFactory">An event messages factory.</param>
        /// <param name="urlSegmentProviders">Some url segment providers.</param>
        /// <param name="container">A container.</param>
        /// <param name="scopeProvider"></param>
        /// <returns>A ServiceContext.</returns>
        /// <remarks>Should be used sparingly for integration tests only - for unit tests
        /// just mock the services to be passed to the ctor of the ServiceContext.</remarks>
        public ServiceContext GetServiceContext(
            IScopeProvider scopeProvider, IScopeAccessor scopeAccessor,
            CacheHelper cache,
            ILogger logger,
            IGlobalSettings globalSettings,
            IUmbracoSettingsSection umbracoSettings,
            IEventMessagesFactory eventMessagesFactory,
            UrlSegmentProviderCollection urlSegmentProviders,
            TypeLoader typeLoader,
            IFactory factory = null)
        {
            if (scopeProvider == null)
            {
                throw new ArgumentNullException(nameof(scopeProvider));
            }
            if (scopeAccessor == null)
            {
                throw new ArgumentNullException(nameof(scopeAccessor));
            }
            if (cache == null)
            {
                throw new ArgumentNullException(nameof(cache));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (eventMessagesFactory == null)
            {
                throw new ArgumentNullException(nameof(eventMessagesFactory));
            }

            var scheme = Mock.Of <IMediaPathScheme>();
            var config = Mock.Of <IContentSection>();

            var mediaFileSystem = new MediaFileSystem(Mock.Of <IFileSystem>(), config, scheme, logger);

            var externalLoginService = GetLazyService <IExternalLoginService>(factory, c => new ExternalLoginService(scopeProvider, logger, eventMessagesFactory, GetRepo <IExternalLoginRepository>(c)));
            var publicAccessService  = GetLazyService <IPublicAccessService>(factory, c => new PublicAccessService(scopeProvider, logger, eventMessagesFactory, GetRepo <IPublicAccessRepository>(c)));
            var domainService        = GetLazyService <IDomainService>(factory, c => new DomainService(scopeProvider, logger, eventMessagesFactory, GetRepo <IDomainRepository>(c)));
            var auditService         = GetLazyService <IAuditService>(factory, c => new AuditService(scopeProvider, logger, eventMessagesFactory, GetRepo <IAuditRepository>(c), GetRepo <IAuditEntryRepository>(c)));

            var localizedTextService = GetLazyService <ILocalizedTextService>(factory, c => new LocalizedTextService(
                                                                                  new Lazy <LocalizedTextServiceFileSources>(() =>
            {
                var mainLangFolder   = new DirectoryInfo(IOHelper.MapPath(SystemDirectories.Umbraco + "/config/lang/"));
                var appPlugins       = new DirectoryInfo(IOHelper.MapPath(SystemDirectories.AppPlugins));
                var configLangFolder = new DirectoryInfo(IOHelper.MapPath(SystemDirectories.Config + "/lang/"));

                var pluginLangFolders = appPlugins.Exists == false
                            ? Enumerable.Empty <LocalizedTextServiceSupplementaryFileSource>()
                            : appPlugins.GetDirectories()
                                        .SelectMany(x => x.GetDirectories("Lang"))
                                        .SelectMany(x => x.GetFiles("*.xml", SearchOption.TopDirectoryOnly))
                                        .Where(x => Path.GetFileNameWithoutExtension(x.FullName).Length == 5)
                                        .Select(x => new LocalizedTextServiceSupplementaryFileSource(x, false));

                //user defined langs that overwrite the default, these should not be used by plugin creators
                var userLangFolders = configLangFolder.Exists == false
                            ? Enumerable.Empty <LocalizedTextServiceSupplementaryFileSource>()
                            : configLangFolder
                                      .GetFiles("*.user.xml", SearchOption.TopDirectoryOnly)
                                      .Where(x => Path.GetFileNameWithoutExtension(x.FullName).Length == 10)
                                      .Select(x => new LocalizedTextServiceSupplementaryFileSource(x, true));

                return(new LocalizedTextServiceFileSources(
                           logger,
                           cache.RuntimeCache,
                           mainLangFolder,
                           pluginLangFolders.Concat(userLangFolders)));
            }),
                                                                                  logger));

            var runtimeState = Mock.Of <IRuntimeState>();
            var idkMap       = new IdkMap(scopeProvider);

            var localizationService       = GetLazyService <ILocalizationService>(factory, c => new LocalizationService(scopeProvider, logger, eventMessagesFactory, GetRepo <IDictionaryRepository>(c), GetRepo <IAuditRepository>(c), GetRepo <ILanguageRepository>(c)));
            var userService               = GetLazyService <IUserService>(factory, c => new UserService(scopeProvider, logger, eventMessagesFactory, runtimeState, GetRepo <IUserRepository>(c), GetRepo <IUserGroupRepository>(c), globalSettings));
            var dataTypeService           = GetLazyService <IDataTypeService>(factory, c => new DataTypeService(scopeProvider, logger, eventMessagesFactory, GetRepo <IDataTypeRepository>(c), GetRepo <IDataTypeContainerRepository>(c), GetRepo <IAuditRepository>(c), GetRepo <IEntityRepository>(c), GetRepo <IContentTypeRepository>(c)));
            var contentService            = GetLazyService <IContentService>(factory, c => new ContentService(scopeProvider, logger, eventMessagesFactory, mediaFileSystem, GetRepo <IDocumentRepository>(c), GetRepo <IEntityRepository>(c), GetRepo <IAuditRepository>(c), GetRepo <IContentTypeRepository>(c), GetRepo <IDocumentBlueprintRepository>(c), GetRepo <ILanguageRepository>(c)));
            var notificationService       = GetLazyService <INotificationService>(factory, c => new NotificationService(scopeProvider, userService.Value, contentService.Value, localizationService.Value, logger, GetRepo <INotificationsRepository>(c), globalSettings, umbracoSettings.Content));
            var serverRegistrationService = GetLazyService <IServerRegistrationService>(factory, c => new ServerRegistrationService(scopeProvider, logger, eventMessagesFactory, GetRepo <IServerRegistrationRepository>(c)));
            var memberGroupService        = GetLazyService <IMemberGroupService>(factory, c => new MemberGroupService(scopeProvider, logger, eventMessagesFactory, GetRepo <IMemberGroupRepository>(c)));
            var memberService             = GetLazyService <IMemberService>(factory, c => new MemberService(scopeProvider, logger, eventMessagesFactory, memberGroupService.Value, mediaFileSystem, GetRepo <IMemberRepository>(c), GetRepo <IMemberTypeRepository>(c), GetRepo <IMemberGroupRepository>(c), GetRepo <IAuditRepository>(c)));
            var mediaService              = GetLazyService <IMediaService>(factory, c => new MediaService(scopeProvider, mediaFileSystem, logger, eventMessagesFactory, GetRepo <IMediaRepository>(c), GetRepo <IAuditRepository>(c), GetRepo <IMediaTypeRepository>(c), GetRepo <IEntityRepository>(c)));
            var contentTypeService        = GetLazyService <IContentTypeService>(factory, c => new ContentTypeService(scopeProvider, logger, eventMessagesFactory, contentService.Value, GetRepo <IContentTypeRepository>(c), GetRepo <IAuditRepository>(c), GetRepo <IDocumentTypeContainerRepository>(c), GetRepo <IEntityRepository>(c)));
            var mediaTypeService          = GetLazyService <IMediaTypeService>(factory, c => new MediaTypeService(scopeProvider, logger, eventMessagesFactory, mediaService.Value, GetRepo <IMediaTypeRepository>(c), GetRepo <IAuditRepository>(c), GetRepo <IMediaTypeContainerRepository>(c), GetRepo <IEntityRepository>(c)));
            var fileService               = GetLazyService <IFileService>(factory, c => new FileService(scopeProvider, logger, eventMessagesFactory, GetRepo <IStylesheetRepository>(c), GetRepo <IScriptRepository>(c), GetRepo <ITemplateRepository>(c), GetRepo <IPartialViewRepository>(c), GetRepo <IPartialViewMacroRepository>(c), GetRepo <IAuditRepository>(c)));

            var memberTypeService = GetLazyService <IMemberTypeService>(factory, c => new MemberTypeService(scopeProvider, logger, eventMessagesFactory, memberService.Value, GetRepo <IMemberTypeRepository>(c), GetRepo <IAuditRepository>(c), GetRepo <IEntityRepository>(c)));
            var entityService     = GetLazyService <IEntityService>(factory, c => new EntityService(
                                                                        scopeProvider, logger, eventMessagesFactory,
                                                                        contentService.Value, contentTypeService.Value, mediaService.Value, mediaTypeService.Value, dataTypeService.Value, memberService.Value, memberTypeService.Value,
                                                                        idkMap,
                                                                        GetRepo <IEntityRepository>(c)));

            var macroService       = GetLazyService <IMacroService>(factory, c => new MacroService(scopeProvider, logger, eventMessagesFactory, GetRepo <IMacroRepository>(c), GetRepo <IAuditRepository>(c)));
            var packagingService   = GetLazyService <IPackagingService>(factory, c => new PackagingService(logger, contentService.Value, contentTypeService.Value, mediaService.Value, macroService.Value, dataTypeService.Value, fileService.Value, localizationService.Value, entityService.Value, userService.Value, scopeProvider, urlSegmentProviders, GetRepo <IAuditRepository>(c), GetRepo <IContentTypeRepository>(c), new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty <DataEditor>()))));
            var relationService    = GetLazyService <IRelationService>(factory, c => new RelationService(scopeProvider, logger, eventMessagesFactory, entityService.Value, GetRepo <IRelationRepository>(c), GetRepo <IRelationTypeRepository>(c)));
            var treeService        = GetLazyService <IApplicationTreeService>(factory, c => new ApplicationTreeService(logger, cache, typeLoader));
            var tagService         = GetLazyService <ITagService>(factory, c => new TagService(scopeProvider, logger, eventMessagesFactory, GetRepo <ITagRepository>(c)));
            var sectionService     = GetLazyService <ISectionService>(factory, c => new SectionService(userService.Value, treeService.Value, scopeProvider, cache));
            var redirectUrlService = GetLazyService <IRedirectUrlService>(factory, c => new RedirectUrlService(scopeProvider, logger, eventMessagesFactory, GetRepo <IRedirectUrlRepository>(c)));
            var consentService     = GetLazyService <IConsentService>(factory, c => new ConsentService(scopeProvider, logger, eventMessagesFactory, GetRepo <IConsentRepository>(c)));

            return(new ServiceContext(
                       publicAccessService,
                       domainService,
                       auditService,
                       localizedTextService,
                       tagService,
                       contentService,
                       userService,
                       memberService,
                       mediaService,
                       contentTypeService,
                       mediaTypeService,
                       dataTypeService,
                       fileService,
                       localizationService,
                       packagingService,
                       serverRegistrationService,
                       entityService,
                       relationService,
                       treeService,
                       sectionService,
                       macroService,
                       memberTypeService,
                       memberGroupService,
                       notificationService,
                       externalLoginService,
                       redirectUrlService,
                       consentService));
        }
Example #12
0
 public MemberCacheRefresher(CacheHelper cacheHelper, IdkMap idkMap)
     : base(cacheHelper)
 {
     _idkMap = idkMap;
 }
Example #13
0
 public MediaCacheRefresher(AppCaches appCaches, IJsonSerializer serializer, IPublishedSnapshotService publishedSnapshotService, IdkMap idkMap)
     : base(appCaches, serializer)
 {
     _publishedSnapshotService = publishedSnapshotService;
     _idkMap = idkMap;
 }
 public MediaCacheRefresher(CacheHelper cacheHelper, IPublishedSnapshotService publishedSnapshotService, IdkMap idkMap)
     : base(cacheHelper)
 {
     _publishedSnapshotService = publishedSnapshotService;
     _idkMap = idkMap;
 }
Example #15
0
 public MediaCacheRefresher(AppCaches appCaches, IPublishedSnapshotService publishedSnapshotService, IdkMap idkMap)
     : base(appCaches)
 {
     _publishedSnapshotService = publishedSnapshotService;
     _idkMap = idkMap;
 }
 public TemplateCacheRefresher(AppCaches appCaches, IdkMap idkMap, IContentTypeCommonRepository contentTypeCommonRepository)
     : base(appCaches)
 {
     _idkMap = idkMap;
     _contentTypeCommonRepository = contentTypeCommonRepository;
 }
 public TemplateCacheRefresher(CacheHelper cacheHelper, IdkMap idkMap)
     : base(cacheHelper)
 {
     _idkMap = idkMap;
 }