示例#1
0
        private void AssertBasics(ContentItemDisplay result, IContent content)
        {
            Assert.AreEqual(content.Id, result.Id);

            int ownerId = content.CreatorId;

            if (ownerId != 0)
            {
                Assert.IsNotNull(result.Owner);
                Assert.AreEqual(Constants.Security.SuperUserId, result.Owner.UserId);
                Assert.AreEqual("Administrator", result.Owner.Name);
            }
            else
            {
                Assert.IsNull(result.Owner); // because, 0 is no user
            }

            ContentVariantDisplay invariantContent = result.Variants.First();

            Assert.AreEqual(content.ParentId, result.ParentId);
            Assert.AreEqual(content.UpdateDate, invariantContent.UpdateDate);
            Assert.AreEqual(content.CreateDate, invariantContent.CreateDate);
            Assert.AreEqual(content.Name, invariantContent.Name);
            Assert.AreEqual(
                content.Properties.Count(),
                ((IContentProperties <ContentPropertyDisplay>)invariantContent).Properties.Count(x => x.Alias.StartsWith("_umb_") == false));
        }
    // Umbraco.Code.MapAll
    private void Map(ContentVariantDisplay source, ContentVariantScheduleDisplay target, MapperContext context)
    {
        target.CreateDate  = source.CreateDate;
        target.DisplayName = source.DisplayName;
        target.Language    = source.Language;
        target.Name        = source.Name;
        target.PublishDate = source.PublishDate;
        target.Segment     = source.Segment;
        target.State       = source.State;
        target.Tabs        = source.Tabs;
        target.UpdateDate  = source.UpdateDate;

        // We'll only try and map the ReleaseDate/ExpireDate if the "old" ContentVariantScheduleDisplay is in the context, otherwise we'll just skip it quietly.
        _ = context.Items.TryGetValue(nameof(ContentItemDisplayWithSchedule.Variants), out var variants);
        if (variants is IEnumerable <ContentVariantScheduleDisplay> scheduleDisplays)
        {
            ContentVariantScheduleDisplay?item = scheduleDisplays.FirstOrDefault(x => x.Language?.Id == source.Language?.Id && x.Segment == source.Segment);

            if (item is null)
            {
                // If we can't find the old variants display, we'll just not try and map it.
                return;
            }

            target.ReleaseDate = item.ReleaseDate;
            target.ExpireDate  = item.ExpireDate;
        }
    }
示例#3
0
        public void To_Display_Model_No_Tabs()
        {
            IContentType contentType = _contentTypeBuilder
                                       .WithId(0)
                                       .Build();

            _contentTypeService.Save(contentType);

            Content content = _contentBuilder
                              .WithContentType(contentType)
                              .WithCreatorId(Constants.Security.SuperUserId)
                              .Build();

            ContentItemDisplay result = _sut.Map <IContent, ContentItemDisplay>(content);

            AssertBasics(result, content);

            ContentVariantDisplay invariantContent = result.Variants.First();

            foreach (IProperty p in content.Properties)
            {
                AssertBasicProperty(invariantContent, p);
                AssertDisplayProperty(invariantContent, p);
            }

            Assert.AreEqual(contentType.CompositionPropertyGroups.Count(), invariantContent.Tabs.Count());
        }
示例#4
0
 // Umbraco.Code.MapAll -Segment -Language -DisplayName
 private void Map(IContent source, ContentVariantDisplay target, MapperContext context)
 {
     target.CreateDate  = source.CreateDate;
     target.Name        = source.Name;
     target.PublishDate = source.PublishDate;
     target.State       = _stateMapper.Map(source, context);
     target.Tabs        = _tabsAndPropertiesMapper.Map(source, context);
     target.UpdateDate  = source.UpdateDate;
 }
示例#5
0
 // Umbraco.Code.MapAll -Segment -Language -DisplayName
 private void Map(IContent source, ContentVariantDisplay target, MapperContext context)
 {
     target.CreateDate  = source.CreateDate;
     target.ExpireDate  = GetScheduledDate(source, ContentScheduleAction.Expire, context);
     target.Name        = source.Name;
     target.PublishDate = source.PublishDate;
     target.ReleaseDate = GetScheduledDate(source, ContentScheduleAction.Release, context);
     target.State       = _stateMapper.Map(source, context);
     target.Tabs        = _tabsAndPropertiesMapper.Map(source, context);
     target.UpdateDate  = source.UpdateDate;
 }
 // Umbraco.Code.MapAll
 private void Map(ContentVariantScheduleDisplay source, ContentVariantDisplay target, MapperContext context)
 {
     target.CreateDate  = source.CreateDate;
     target.DisplayName = source.DisplayName;
     target.Language    = source.Language;
     target.Name        = source.Name;
     target.PublishDate = source.PublishDate;
     target.Segment     = source.Segment;
     target.State       = source.State;
     target.Tabs        = source.Tabs;
     target.UpdateDate  = source.UpdateDate;
 }
示例#7
0
        public void To_Display_Model()
        {
            IContentType contentType = _contentTypeBuilder
                                       .WithId(0)
                                       .AddPropertyGroup()
                                       .WithId(1)
                                       .AddPropertyType()
                                       .Done()
                                       .Done()
                                       .AddPropertyGroup()
                                       .WithId(2)
                                       .AddPropertyType()
                                       .Done()
                                       .Done()
                                       .AddPropertyGroup()
                                       .WithId(3)
                                       .AddPropertyType()
                                       .Done()
                                       .Done()
                                       .AddPropertyGroup()
                                       .WithId(4)
                                       .AddPropertyType()
                                       .Done()
                                       .Done()
                                       .Build();

            _contentTypeService.Save(contentType);

            Content content = _contentBuilder
                              .WithContentType(contentType)
                              .WithCreatorId(Constants.Security.SuperUserId)
                              .Build();

            ContentItemDisplay result = _sut.Map <IContent, ContentItemDisplay>(content);

            AssertBasics(result, content);

            ContentVariantDisplay invariantContent = result.Variants.First();

            foreach (IProperty p in content.Properties)
            {
                AssertBasicProperty(invariantContent, p);
                AssertDisplayProperty(invariantContent, p);
            }

            Assert.AreEqual(4, invariantContent.Tabs.Count());
            Assert.IsTrue(invariantContent.Tabs.First().IsActive);
            Assert.IsTrue(invariantContent.Tabs.Except(new[] { invariantContent.Tabs.First() }).All(x => x.IsActive == false));
        }
示例#8
0
        public void To_Display_Model_With_Non_Grouped_Properties()
        {
            IContentType contentType = _contentTypeBuilder
                                       .WithId(0)
                                       .AddPropertyType()
                                       .WithId(1)
                                       .WithValueStorageType(ValueStorageType.Ntext)
                                       .WithPropertyEditorAlias("nonGrouped1")
                                       .WithName("Non Grouped 1")
                                       .Done()
                                       .AddPropertyType()
                                       .WithId(2)
                                       .WithValueStorageType(ValueStorageType.Ntext)
                                       .WithPropertyEditorAlias("nonGrouped2")
                                       .WithName("Non Grouped 2")
                                       .Done()
                                       .Build();

            _contentTypeService.Save(contentType);

            Content content = _contentBuilder
                              .WithContentType(contentType)
                              .WithCreatorId(Constants.Security.SuperUserId)
                              .Build();

            ContentItemDisplay result = _sut.Map <IContent, ContentItemDisplay>(content);

            AssertBasics(result, content);

            ContentVariantDisplay invariantContent = result.Variants.First();

            foreach (IProperty p in content.Properties)
            {
                AssertBasicProperty(invariantContent, p);
                AssertDisplayProperty(invariantContent, p);
            }

            Assert.AreEqual(contentType.CompositionPropertyGroups.Count(), invariantContent.Tabs.Count() - 1);
            Assert.IsTrue(invariantContent.Tabs.Any(x => x.Label == _localizedTextService.Localize("general", "properties")));
            Assert.AreEqual(2, invariantContent.Tabs.Where(x => x.Label == _localizedTextService.Localize("general", "properties")).SelectMany(x => x.Properties.Where(p => p.Alias.StartsWith("_umb_") == false)).Count());
        }
示例#9
0
 private static bool IsDefaultLanguage(ContentVariantDisplay variant)
 {
     return(variant.Language == null || variant.Language.IsDefault);
 }
示例#10
0
 private static bool IsDefaultSegment(ContentVariantDisplay variant)
 {
     return(variant.Segment == null);
 }
示例#11
0
 private static bool IsDefaultSegment(ContentVariantDisplay variant) => variant.Segment == null;