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; } }
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()); }
// 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; }
// 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; }
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)); }
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()); }
private static bool IsDefaultLanguage(ContentVariantDisplay variant) { return(variant.Language == null || variant.Language.IsDefault); }
private static bool IsDefaultSegment(ContentVariantDisplay variant) { return(variant.Segment == null); }
private static bool IsDefaultSegment(ContentVariantDisplay variant) => variant.Segment == null;