示例#1
0
    private MemberRepository CreateRepository(IScopeProvider provider)
    {
        var accessor = (IScopeAccessor)provider;
        var tagRepo  = GetRequiredService <ITagRepository>();
        var relationTypeRepository = GetRequiredService <IRelationTypeRepository>();
        var relationRepository     = GetRequiredService <IRelationRepository>();
        var propertyEditors        =
            new PropertyEditorCollection(new DataEditorCollection(() => Enumerable.Empty <IDataEditor>()));
        var dataValueReferences =
            new DataValueReferenceFactoryCollection(() => Enumerable.Empty <IDataValueReferenceFactory>());

        return(new MemberRepository(
                   accessor,
                   AppCaches.Disabled,
                   LoggerFactory.CreateLogger <MemberRepository>(),
                   MemberTypeRepository,
                   MemberGroupRepository,
                   tagRepo,
                   Mock.Of <ILanguageRepository>(),
                   relationRepository,
                   relationTypeRepository,
                   PasswordHasher,
                   propertyEditors,
                   dataValueReferences,
                   DataTypeService,
                   JsonSerializer,
                   Mock.Of <IEventAggregator>(),
                   Options.Create(new MemberPasswordConfigurationSettings())));
    }
 public DocumentBlueprintRepository(
     IScopeAccessor scopeAccessor,
     AppCaches appCaches,
     ILogger <DocumentBlueprintRepository> logger,
     ILoggerFactory loggerFactory,
     IContentTypeRepository contentTypeRepository,
     ITemplateRepository templateRepository,
     ITagRepository tagRepository,
     ILanguageRepository languageRepository,
     IRelationRepository relationRepository,
     IRelationTypeRepository relationTypeRepository,
     PropertyEditorCollection propertyEditorCollection,
     IDataTypeService dataTypeService,
     DataValueReferenceFactoryCollection dataValueReferenceFactories,
     IJsonSerializer serializer,
     IEventAggregator eventAggregator)
     : base(
         scopeAccessor,
         appCaches,
         logger,
         loggerFactory,
         contentTypeRepository,
         templateRepository,
         tagRepository,
         languageRepository,
         relationRepository,
         relationTypeRepository,
         propertyEditorCollection,
         dataValueReferenceFactories,
         dataTypeService,
         serializer,
         eventAggregator)
 {
 }
示例#3
0
 public MediaRepository(
     IScopeAccessor scopeAccessor,
     AppCaches cache,
     ILogger <MediaRepository> logger,
     ILoggerFactory loggerFactory,
     IMediaTypeRepository mediaTypeRepository,
     ITagRepository tagRepository,
     ILanguageRepository languageRepository,
     IRelationRepository relationRepository,
     IRelationTypeRepository relationTypeRepository,
     PropertyEditorCollection propertyEditorCollection,
     MediaUrlGeneratorCollection mediaUrlGenerators,
     DataValueReferenceFactoryCollection dataValueReferenceFactories,
     IDataTypeService dataTypeService,
     IJsonSerializer serializer,
     IEventAggregator eventAggregator)
     : base(scopeAccessor, cache, logger, languageRepository, relationRepository, relationTypeRepository, propertyEditorCollection, dataValueReferenceFactories, dataTypeService, eventAggregator)
 {
     _cache = cache;
     _mediaTypeRepository       = mediaTypeRepository ?? throw new ArgumentNullException(nameof(mediaTypeRepository));
     _tagRepository             = tagRepository ?? throw new ArgumentNullException(nameof(tagRepository));
     _mediaUrlGenerators        = mediaUrlGenerators;
     _serializer                = serializer;
     _mediaByGuidReadRepository = new MediaByGuidReadRepository(this, scopeAccessor, cache, loggerFactory.CreateLogger <MediaByGuidReadRepository>());
 }
示例#4
0
 public MemberRepository(
     IScopeAccessor scopeAccessor,
     AppCaches cache,
     ILogger <MemberRepository> logger,
     IMemberTypeRepository memberTypeRepository,
     IMemberGroupRepository memberGroupRepository,
     ITagRepository tagRepository,
     ILanguageRepository languageRepository,
     IRelationRepository relationRepository,
     IRelationTypeRepository relationTypeRepository,
     IPasswordHasher passwordHasher,
     PropertyEditorCollection propertyEditors,
     DataValueReferenceFactoryCollection dataValueReferenceFactories,
     IDataTypeService dataTypeService,
     IJsonSerializer serializer,
     IEventAggregator eventAggregator,
     IOptions <MemberPasswordConfigurationSettings> passwordConfiguration)
     : base(scopeAccessor, cache, logger, languageRepository, relationRepository, relationTypeRepository,
            propertyEditors, dataValueReferenceFactories, dataTypeService, eventAggregator)
 {
     _memberTypeRepository =
         memberTypeRepository ?? throw new ArgumentNullException(nameof(memberTypeRepository));
     _tagRepository               = tagRepository ?? throw new ArgumentNullException(nameof(tagRepository));
     _passwordHasher              = passwordHasher;
     _jsonSerializer              = serializer;
     _memberGroupRepository       = memberGroupRepository;
     _passwordConfiguration       = passwordConfiguration.Value;
     _memberByUsernameCachePolicy =
         new DefaultRepositoryCachePolicy <IMember, string>(GlobalIsolatedCache, ScopeAccessor, DefaultOptions);
 }
示例#5
0
        public void GetAllReferences_All_Variants_With_IDataValueReference_Editor()
        {
            var collection = new DataValueReferenceFactoryCollection(Enumerable.Empty <IDataValueReferenceFactory>());

            // mediaPicker does implement IDataValueReference
            var mediaPicker     = new MediaPickerPropertyEditor(Mock.Of <ILogger>());
            var propertyEditors = new PropertyEditorCollection(new DataEditorCollection(mediaPicker.Yield()));
            var trackedUdi1     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
            var trackedUdi2     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
            var trackedUdi3     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
            var trackedUdi4     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
            var property        = new Property(new PropertyType(new DataType(mediaPicker))
            {
                Variations = ContentVariation.CultureAndSegment
            })
            {
                Values = new List <PropertyValue>
                {
                    // Ignored (no culture)
                    new PropertyValue
                    {
                        EditedValue = trackedUdi1
                    },
                    new PropertyValue
                    {
                        Culture     = "en-US",
                        EditedValue = trackedUdi2
                    },
                    new PropertyValue
                    {
                        Culture     = "en-US",
                        Segment     = "A",
                        EditedValue = trackedUdi3
                    },
                    // Ignored (no culture)
                    new PropertyValue
                    {
                        Segment     = "A",
                        EditedValue = trackedUdi4
                    },
                    // duplicate
                    new PropertyValue
                    {
                        Culture     = "en-US",
                        Segment     = "B",
                        EditedValue = trackedUdi3
                    }
                }
            };
            var properties = new PropertyCollection
            {
                property
            };
            var result = collection.GetAllReferences(properties, propertyEditors);

            Assert.AreEqual(2, result.Count());
            Assert.AreEqual(trackedUdi2, result.ElementAt(0).Udi.ToString());
            Assert.AreEqual(trackedUdi3, result.ElementAt(1).Udi.ToString());
        }
示例#6
0
 public MemberRepository(IScopeAccessor scopeAccessor, AppCaches cache, ILogger logger,
                         IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository, ITagRepository tagRepository, ILanguageRepository languageRepository, IRelationRepository relationRepository, IRelationTypeRepository relationTypeRepository,
                         Lazy <PropertyEditorCollection> propertyEditors, DataValueReferenceFactoryCollection dataValueReferenceFactories)
     : base(scopeAccessor, cache, logger, languageRepository, relationRepository, relationTypeRepository, propertyEditors, dataValueReferenceFactories)
 {
     _memberTypeRepository  = memberTypeRepository ?? throw new ArgumentNullException(nameof(memberTypeRepository));
     _tagRepository         = tagRepository ?? throw new ArgumentNullException(nameof(tagRepository));
     _memberGroupRepository = memberGroupRepository;
 }
        public MemberRepository(IScopeAccessor scopeAccessor, AppCaches cache, ILogger logger,
                                IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository, ITagRepository tagRepository, ILanguageRepository languageRepository, IRelationRepository relationRepository, IRelationTypeRepository relationTypeRepository,
                                Lazy <PropertyEditorCollection> propertyEditors, DataValueReferenceFactoryCollection dataValueReferenceFactories)
            : base(scopeAccessor, cache, logger, languageRepository, relationRepository, relationTypeRepository, propertyEditors, dataValueReferenceFactories)
        {
            _memberTypeRepository  = memberTypeRepository ?? throw new ArgumentNullException(nameof(memberTypeRepository));
            _tagRepository         = tagRepository ?? throw new ArgumentNullException(nameof(tagRepository));
            _memberGroupRepository = memberGroupRepository;

            _memberByUsernameCachePolicy = new DefaultRepositoryCachePolicy <IMember, string>(GlobalIsolatedCache, ScopeAccessor, DefaultOptions);
        }
        private DocumentRepository CreateDocumentRepository(IScopeProvider provider)
        {
            var accessor               = (IScopeAccessor)provider;
            var tRepository            = new TemplateRepository(accessor, AppCaches.Disabled, Logger, TestObjects.GetFileSystemsMock());
            var tagRepo                = new TagRepository(accessor, AppCaches.Disabled, Logger);
            var commonRepository       = new ContentTypeCommonRepository(accessor, tRepository, AppCaches);
            var languageRepository     = new LanguageRepository(accessor, AppCaches.Disabled, Logger);
            var ctRepository           = new ContentTypeRepository(accessor, AppCaches.Disabled, Logger, commonRepository, languageRepository);
            var relationTypeRepository = new RelationTypeRepository(accessor, AppCaches.Disabled, Logger);
            var entityRepository       = new EntityRepository(accessor);
            var relationRepository     = new RelationRepository(accessor, Logger, relationTypeRepository, entityRepository);
            var propertyEditors        = new Lazy <PropertyEditorCollection>(() => new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty <IDataEditor>())));
            var dataValueReferences    = new DataValueReferenceFactoryCollection(Enumerable.Empty <IDataValueReferenceFactory>());
            var repository             = new DocumentRepository(accessor, AppCaches.Disabled, Logger, ctRepository, tRepository, tagRepo, languageRepository, relationRepository, relationTypeRepository, propertyEditors, dataValueReferences);

            return(repository);
        }
    public void GetAllReferences_All_Variants_With_IDataValueReference_Editor()
    {
        var collection = new DataValueReferenceFactoryCollection(() => Enumerable.Empty <IDataValueReferenceFactory>());

        // mediaPicker does implement IDataValueReference
        var mediaPicker = new MediaPickerPropertyEditor(
            DataValueEditorFactory,
            IOHelper,
            EditorConfigurationParser);
        var propertyEditors = new PropertyEditorCollection(new DataEditorCollection(() => mediaPicker.Yield()));
        var trackedUdi1     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
        var trackedUdi2     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
        var trackedUdi3     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
        var trackedUdi4     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
        var serializer      = new ConfigurationEditorJsonSerializer();
        var property        =
            new Property(
                new PropertyType(ShortStringHelper, new DataType(mediaPicker, serializer))
        {
            Variations = ContentVariation.CultureAndSegment,
        })
        {
            Values = new List <PropertyValue>
            {
                // Ignored (no culture)
                new() { EditedValue = trackedUdi1 },
                new() { Culture = "en-US", EditedValue = trackedUdi2 },
                new() { Culture = "en-US", Segment = "A", EditedValue = trackedUdi3 },

                // Ignored (no culture)
                new() { Segment = "A", EditedValue = trackedUdi4 },

                // Duplicate
                new() { Culture = "en-US", Segment = "B", EditedValue = trackedUdi3 },
            },
        };
        var properties = new PropertyCollection {
            property
        };
        var result = collection.GetAllReferences(properties, propertyEditors).ToArray();

        Assert.AreEqual(2, result.Count());
        Assert.AreEqual(trackedUdi2, result.ElementAt(0).Udi.ToString());
        Assert.AreEqual(trackedUdi3, result.ElementAt(1).Udi.ToString());
    }
        public void Can_Perform_Delete_When_Assigned_To_Doc()
        {
            // Arrange
            IScopeProvider   provider        = ScopeProvider;
            var              scopeAccessor   = (IScopeAccessor)provider;
            IDataTypeService dataTypeService = GetRequiredService <IDataTypeService>();
            IFileService     fileService     = GetRequiredService <IFileService>();

            using (provider.CreateScope())
            {
                ITemplateRepository templateRepository = CreateRepository(provider);
                var globalSettings         = new GlobalSettings();
                var serializer             = new JsonNetSerializer();
                var tagRepository          = new TagRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger <TagRepository>());
                var commonRepository       = new ContentTypeCommonRepository(scopeAccessor, templateRepository, AppCaches, ShortStringHelper);
                var languageRepository     = new LanguageRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger <LanguageRepository>(), Microsoft.Extensions.Options.Options.Create(globalSettings));
                var contentTypeRepository  = new ContentTypeRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger <ContentTypeRepository>(), commonRepository, languageRepository, ShortStringHelper);
                var relationTypeRepository = new RelationTypeRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger <RelationTypeRepository>());
                var entityRepository       = new EntityRepository(scopeAccessor, AppCaches.Disabled);
                var relationRepository     = new RelationRepository(scopeAccessor, LoggerFactory.CreateLogger <RelationRepository>(), relationTypeRepository, entityRepository);
                var propertyEditors        = new PropertyEditorCollection(new DataEditorCollection(() => Enumerable.Empty <IDataEditor>()));
                var dataValueReferences    = new DataValueReferenceFactoryCollection(() => Enumerable.Empty <IDataValueReferenceFactory>());
                var contentRepo            = new DocumentRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger <DocumentRepository>(), LoggerFactory, contentTypeRepository, templateRepository, tagRepository, languageRepository, relationRepository, relationTypeRepository, propertyEditors, dataValueReferences, dataTypeService, serializer, Mock.Of <IEventAggregator>());

                Template template = TemplateBuilder.CreateTextPageTemplate();
                fileService.SaveTemplate(template); // else, FK violation on contentType!

                ContentType contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage2", "Textpage", defaultTemplateId: template.Id);
                contentTypeRepository.Save(contentType);

                Content textpage = ContentBuilder.CreateSimpleContent(contentType);
                contentRepo.Save(textpage);

                textpage.TemplateId = template.Id;
                contentRepo.Save(textpage);

                // Act
                ITemplate templates = templateRepository.Get("textPage");
                templateRepository.Delete(templates);

                // Assert
                Assert.IsNull(templateRepository.Get("textPage"));
            }
        }
示例#11
0
        private MemberRepository CreateRepository(IScopeProvider provider, out MemberTypeRepository memberTypeRepository, out MemberGroupRepository memberGroupRepository)
        {
            var accessor           = (IScopeAccessor)provider;
            var templateRepository = Mock.Of <ITemplateRepository>();
            var commonRepository   = new ContentTypeCommonRepository(accessor, templateRepository, AppCaches);
            var languageRepository = new LanguageRepository(accessor, AppCaches.Disabled, Logger);

            memberTypeRepository  = new MemberTypeRepository(accessor, AppCaches.Disabled, Logger, commonRepository, languageRepository);
            memberGroupRepository = new MemberGroupRepository(accessor, AppCaches.Disabled, Logger);
            var tagRepo = new TagRepository(accessor, AppCaches.Disabled, Logger);
            var relationTypeRepository = new RelationTypeRepository(accessor, AppCaches.Disabled, Logger);
            var entityRepository       = new EntityRepository(accessor);
            var relationRepository     = new RelationRepository(accessor, Logger, relationTypeRepository, entityRepository);
            var propertyEditors        = new Lazy <PropertyEditorCollection>(() => new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty <IDataEditor>())));
            var dataValueReferences    = new DataValueReferenceFactoryCollection(Enumerable.Empty <IDataValueReferenceFactory>());
            var repository             = new MemberRepository(accessor, AppCaches.Disabled, Logger, memberTypeRepository, memberGroupRepository, tagRepo, Mock.Of <ILanguageRepository>(), relationRepository, relationTypeRepository, propertyEditors, dataValueReferences);

            return(repository);
        }
示例#12
0
        private MediaRepository CreateRepository(IScopeProvider provider, out MediaTypeRepository mediaTypeRepository, AppCaches appCaches = null)
        {
            appCaches = appCaches ?? AppCaches;
            var scopeAccessor = (IScopeAccessor)provider;

            var templateRepository = new TemplateRepository(scopeAccessor, appCaches, Logger, TestObjects.GetFileSystemsMock());
            var commonRepository   = new ContentTypeCommonRepository(scopeAccessor, templateRepository, appCaches);
            var languageRepository = new LanguageRepository(scopeAccessor, appCaches, Logger);

            mediaTypeRepository = new MediaTypeRepository(scopeAccessor, appCaches, Logger, commonRepository, languageRepository);
            var tagRepository          = new TagRepository(scopeAccessor, appCaches, Logger);
            var relationTypeRepository = new RelationTypeRepository(scopeAccessor, AppCaches.Disabled, Logger);
            var entityRepository       = new EntityRepository(scopeAccessor);
            var relationRepository     = new RelationRepository(scopeAccessor, Logger, relationTypeRepository, entityRepository);
            var propertyEditors        = new Lazy <PropertyEditorCollection>(() => new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty <IDataEditor>())));
            var dataValueReferences    = new DataValueReferenceFactoryCollection(Enumerable.Empty <IDataValueReferenceFactory>());
            var repository             = new MediaRepository(scopeAccessor, appCaches, Logger, mediaTypeRepository, tagRepository, Mock.Of <ILanguageRepository>(), relationRepository, relationTypeRepository, propertyEditors, dataValueReferences);

            return(repository);
        }
示例#13
0
        private MediaRepository CreateRepository(IScopeProvider provider, out MediaTypeRepository mediaTypeRepository, AppCaches appCaches = null)
        {
            appCaches ??= AppCaches.NoCache;
            var scopeAccessor      = (IScopeAccessor)provider;
            var globalSettings     = new GlobalSettings();
            var commonRepository   = new ContentTypeCommonRepository(scopeAccessor, TemplateRepository, appCaches, ShortStringHelper);
            var languageRepository = new LanguageRepository(scopeAccessor, appCaches, LoggerFactory.CreateLogger <LanguageRepository>());

            mediaTypeRepository = new MediaTypeRepository(scopeAccessor, appCaches, LoggerFactory.CreateLogger <MediaTypeRepository>(), commonRepository, languageRepository, ShortStringHelper);
            var tagRepository          = new TagRepository(scopeAccessor, appCaches, LoggerFactory.CreateLogger <TagRepository>());
            var relationTypeRepository = new RelationTypeRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger <RelationTypeRepository>());
            var entityRepository       = new EntityRepository(scopeAccessor, AppCaches.Disabled);
            var relationRepository     = new RelationRepository(scopeAccessor, LoggerFactory.CreateLogger <RelationRepository>(), relationTypeRepository, entityRepository);
            var propertyEditors        = new PropertyEditorCollection(new DataEditorCollection(() => Enumerable.Empty <IDataEditor>()));
            var mediaUrlGenerators     = new MediaUrlGeneratorCollection(() => Enumerable.Empty <IMediaUrlGenerator>());
            var dataValueReferences    = new DataValueReferenceFactoryCollection(() => Enumerable.Empty <IDataValueReferenceFactory>());
            var repository             = new MediaRepository(scopeAccessor, appCaches, LoggerFactory.CreateLogger <MediaRepository>(), LoggerFactory, mediaTypeRepository, tagRepository, Mock.Of <ILanguageRepository>(), relationRepository, relationTypeRepository, propertyEditors, mediaUrlGenerators, dataValueReferences, DataTypeService, JsonSerializer, Mock.Of <IEventAggregator>());

            return(repository);
        }
        public void Can_Perform_Delete_When_Assigned_To_Doc()
        {
            // Arrange
            using (ScopeProvider.CreateScope())
            {
                var templateRepository = CreateRepository(ScopeProvider);

                var tagRepository          = new TagRepository(ScopeProvider, AppCaches.Disabled, Logger);
                var commonRepository       = new ContentTypeCommonRepository(ScopeProvider, templateRepository, AppCaches);
                var languageRepository     = new LanguageRepository(ScopeProvider, AppCaches.Disabled, Logger);
                var contentTypeRepository  = new ContentTypeRepository(ScopeProvider, AppCaches.Disabled, Logger, commonRepository, languageRepository);
                var relationTypeRepository = new RelationTypeRepository(ScopeProvider, AppCaches.Disabled, Logger);
                var entityRepository       = new EntityRepository(ScopeProvider);
                var relationRepository     = new RelationRepository(ScopeProvider, Logger, relationTypeRepository, entityRepository);
                var propertyEditors        = new Lazy <PropertyEditorCollection>(() => new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty <IDataEditor>())));
                var dataValueReferences    = new DataValueReferenceFactoryCollection(Enumerable.Empty <IDataValueReferenceFactory>());
                var contentRepo            = new DocumentRepository(ScopeProvider, AppCaches.Disabled, Logger, contentTypeRepository, templateRepository, tagRepository, languageRepository, relationRepository, relationTypeRepository, propertyEditors, dataValueReferences);

                var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage2", "Textpage");
                ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
                contentTypeRepository.Save(contentType);
                var textpage = MockedContent.CreateSimpleContent(contentType);
                contentRepo.Save(textpage);

                var template = new Template("test", "test")
                {
                    Content = @"<%@ Master Language=""C#"" %>"
                };
                templateRepository.Save(template);

                textpage.TemplateId = template.Id;
                contentRepo.Save(textpage);

                // Act
                var templates = templateRepository.Get("test");
                templateRepository.Delete(templates);

                // Assert
                Assert.IsNull(templateRepository.Get("test"));
            }
        }
示例#15
0
 public DocumentBlueprintRepository(IScopeAccessor scopeAccessor, AppCaches appCaches, ILogger logger,
                                    IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagRepository tagRepository, ILanguageRepository languageRepository, IRelationRepository relationRepository, IRelationTypeRepository relationTypeRepository,
                                    Lazy <PropertyEditorCollection> propertyEditorCollection, DataValueReferenceFactoryCollection dataValueReferenceFactories)
     : base(scopeAccessor, appCaches, logger, contentTypeRepository, templateRepository, tagRepository, languageRepository, relationRepository, relationTypeRepository, propertyEditorCollection, dataValueReferenceFactories)
 {
 }
        public void GetAllReferences_All_Variants_With_IDataValueReferenceFactory()
        {
            var collection = new DataValueReferenceFactoryCollection(() => new TestDataValueReferenceFactory().Yield());

            // label does not implement IDataValueReference
            var labelEditor = new LabelPropertyEditor(
                DataValueEditorFactory,
                IOHelper);
            var propertyEditors = new PropertyEditorCollection(new DataEditorCollection(() => labelEditor.Yield()));
            var trackedUdi1     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
            var trackedUdi2     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
            var trackedUdi3     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
            var trackedUdi4     = Udi.Create(Constants.UdiEntityType.Media, Guid.NewGuid()).ToString();
            var serializer      = new ConfigurationEditorJsonSerializer();
            var property        = new Property(new PropertyType(ShortStringHelper, new DataType(labelEditor, serializer))
            {
                Variations = ContentVariation.CultureAndSegment
            })
            {
                Values = new List <PropertyValue>
                {
                    // Ignored (no culture)
                    new PropertyValue
                    {
                        EditedValue = trackedUdi1
                    },
                    new PropertyValue
                    {
                        Culture     = "en-US",
                        EditedValue = trackedUdi2
                    },
                    new PropertyValue
                    {
                        Culture     = "en-US",
                        Segment     = "A",
                        EditedValue = trackedUdi3
                    },

                    // Ignored (no culture)
                    new PropertyValue
                    {
                        Segment     = "A",
                        EditedValue = trackedUdi4
                    },

                    // Duplicate
                    new PropertyValue
                    {
                        Culture     = "en-US",
                        Segment     = "B",
                        EditedValue = trackedUdi3
                    }
                }
            };
            var properties = new PropertyCollection
            {
                property
            };
            IEnumerable <UmbracoEntityReference> result = collection.GetAllReferences(properties, propertyEditors);

            Assert.AreEqual(2, result.Count());
            Assert.AreEqual(trackedUdi2, result.ElementAt(0).Udi.ToString());
            Assert.AreEqual(trackedUdi3, result.ElementAt(1).Udi.ToString());
        }
示例#17
0
 public MediaRepository(IScopeAccessor scopeAccessor, AppCaches cache, ILogger logger, IMediaTypeRepository mediaTypeRepository, ITagRepository tagRepository, ILanguageRepository languageRepository, IRelationRepository relationRepository, IRelationTypeRepository relationTypeRepository,
                        Lazy <PropertyEditorCollection> propertyEditorCollection, DataValueReferenceFactoryCollection dataValueReferenceFactories)
     : base(scopeAccessor, cache, logger, languageRepository, relationRepository, relationTypeRepository, propertyEditorCollection, dataValueReferenceFactories)
 {
     _cache = cache;
     _mediaTypeRepository       = mediaTypeRepository ?? throw new ArgumentNullException(nameof(mediaTypeRepository));
     _tagRepository             = tagRepository ?? throw new ArgumentNullException(nameof(tagRepository));
     _mediaByGuidReadRepository = new MediaByGuidReadRepository(this, scopeAccessor, cache, logger);
 }