diff --git a/src/Umbraco.Core/Models/Content.cs b/src/Umbraco.Core/Models/Content.cs
index 4ead233d6a..708f0ac853 100644
--- a/src/Umbraco.Core/Models/Content.cs
+++ b/src/Umbraco.Core/Models/Content.cs
@@ -306,11 +306,11 @@ namespace Umbraco.Core.Models
public bool Blueprint { get; internal set; }
///
- public virtual bool PublishAllValues()
+ public virtual bool TryPublishAllValues()
{
// the values we want to publish should be valid
if (ValidateAll().Any())
- return false;
+ return false; //fixme this should return an attempt with error results
// Name and PublishName are managed by the repository, but Names and PublishNames
// must be managed here as they depend on the existing / supported variations.
@@ -321,7 +321,8 @@ namespace Umbraco.Core.Models
foreach (var (culture, name) in Names)
{
if (string.IsNullOrWhiteSpace(name))
- throw new InvalidOperationException($"Cannot publish {culture ?? "invariant"} culture without a name.");
+ return false; //fixme this should return an attempt with error results
+
SetPublishInfos(culture, name, now);
}
@@ -334,14 +335,14 @@ namespace Umbraco.Core.Models
}
///
- public virtual bool PublishValues(string culture = null, string segment = null)
+ public virtual bool TryPublishValues(string culture = null, string segment = null)
{
// the variation should be supported by the content type
ContentType.ValidateVariation(culture, segment, throwIfInvalid: true);
// the values we want to publish should be valid
if (Validate(culture, segment).Any())
- return false;
+ return false; //fixme this should return an attempt with error results
// Name and PublishName are managed by the repository, but Names and PublishNames
// must be managed here as they depend on the existing / supported variations.
@@ -349,7 +350,8 @@ namespace Umbraco.Core.Models
{
var name = GetName(culture);
if (string.IsNullOrWhiteSpace(name))
- throw new InvalidOperationException($"Cannot publish {culture ?? "invariant"} culture without a name.");
+ return false; //fixme this should return an attempt with error results
+
SetPublishInfos(culture, name, DateTime.Now);
}
diff --git a/src/Umbraco.Core/Models/ContentExtensions.cs b/src/Umbraco.Core/Models/ContentExtensions.cs
index 0940675346..c0e4214881 100644
--- a/src/Umbraco.Core/Models/ContentExtensions.cs
+++ b/src/Umbraco.Core/Models/ContentExtensions.cs
@@ -168,7 +168,7 @@ namespace Umbraco.Core.Models
public static bool HasPropertyTypeVaryingByCulture(this IContent content)
{
// fixme - what about CultureSegment? what about content.ContentType.Variations?
- return content.PropertyTypes.Any(x => x.Variations == ContentVariation.CultureNeutral);
+ return content.PropertyTypes.Any(x => x.Variations.Has(ContentVariation.CultureNeutral));
}
#endregion
diff --git a/src/Umbraco.Core/Models/IContent.cs b/src/Umbraco.Core/Models/IContent.cs
index 25f980a597..2f3fd06f5f 100644
--- a/src/Umbraco.Core/Models/IContent.cs
+++ b/src/Umbraco.Core/Models/IContent.cs
@@ -169,7 +169,8 @@ namespace Umbraco.Core.Models
/// The document must then be published via the content service.
/// Values are not published if they are not valie.
///
- bool PublishAllValues();
+ //fixme return an Attempt with some error results if it doesn't work
+ bool TryPublishAllValues();
///
/// Publishes values.
@@ -179,7 +180,8 @@ namespace Umbraco.Core.Models
/// The document must then be published via the content service.
/// Values are not published if they are not valid.
///
- bool PublishValues(string culture = null, string segment = null);
+ //fixme return an Attempt with some error results if it doesn't work
+ bool TryPublishValues(string culture = null, string segment = null);
///
/// Publishes the culture/any values.
diff --git a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs
index e47e8aa33e..76321abe6a 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs
@@ -341,10 +341,10 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
(editedCultures ?? (editedCultures = new HashSet(StringComparer.OrdinalIgnoreCase))).Add(culture);
// insert content variations
- Database.InsertBulk(GetContentVariationDtos(content, publishing));
+ Database.BulkInsertRecords(GetContentVariationDtos(content, publishing));
// insert document variations
- Database.InsertBulk(GetDocumentVariationDtos(content, publishing, editedCultures));
+ Database.BulkInsertRecords(GetDocumentVariationDtos(content, publishing, editedCultures));
}
// refresh content
@@ -501,14 +501,14 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
var deleteDocumentVariations = Sql().Delete().Where(x => x.NodeId == content.Id);
Database.Execute(deleteDocumentVariations);
- // fixme is it OK to use NPoco InsertBulk here, or should we use our own BulkInsertRecords?
+ // fixme is we'd like to use the native NPoco InsertBulk here but it causes problems (not sure exaclty all scenarios) but by using SQL Server and updating a variants name will cause: Unable to cast object of type 'Umbraco.Core.Persistence.FaultHandling.RetryDbConnection' to type 'System.Data.SqlClient.SqlConnection'.
// (same in PersistNewItem above)
// insert content variations
- Database.InsertBulk(GetContentVariationDtos(content, publishing));
+ Database.BulkInsertRecords(GetContentVariationDtos(content, publishing));
// insert document variations
- Database.InsertBulk(GetDocumentVariationDtos(content, publishing, editedCultures));
+ Database.BulkInsertRecords(GetDocumentVariationDtos(content, publishing, editedCultures));
}
// refresh content
diff --git a/src/Umbraco.Core/Publishing/ScheduledPublisher.cs b/src/Umbraco.Core/Publishing/ScheduledPublisher.cs
index bb09195691..b16cd961f0 100644
--- a/src/Umbraco.Core/Publishing/ScheduledPublisher.cs
+++ b/src/Umbraco.Core/Publishing/ScheduledPublisher.cs
@@ -39,7 +39,7 @@ namespace Umbraco.Core.Publishing
try
{
d.ReleaseDate = null;
- d.PublishValues(); // fixme variants?
+ d.TryPublishValues(); // fixme variants?
var result = _contentService.SaveAndPublish(d, d.GetWriterProfile().Id);
_logger.Debug($"Result of publish attempt: {result.Result}");
if (result.Success == false)
diff --git a/src/Umbraco.Core/Services/Implement/ContentService.cs b/src/Umbraco.Core/Services/Implement/ContentService.cs
index 84e616d4d7..fc37000e13 100644
--- a/src/Umbraco.Core/Services/Implement/ContentService.cs
+++ b/src/Umbraco.Core/Services/Implement/ContentService.cs
@@ -1070,7 +1070,7 @@ namespace Umbraco.Core.Services.Implement
try
{
d.ReleaseDate = null;
- d.PublishValues(); // fixme variants?
+ d.TryPublishValues(); // fixme variants?
result = SaveAndPublish(d, d.WriterId);
if (result.Success == false)
Logger.Error($"Failed to publish document id={d.Id}, reason={result.Result}.");
@@ -1110,7 +1110,7 @@ namespace Umbraco.Core.Services.Implement
bool IsEditing(IContent c, string l, string s)
=> c.Properties.Any(x => x.Values.Where(y => y.Culture == l && y.Segment == s).Any(y => y.EditedValue != y.PublishedValue));
- return SaveAndPublishBranch(content, force, document => IsEditing(document, culture, segment), document => document.PublishValues(culture, segment), userId);
+ return SaveAndPublishBranch(content, force, document => IsEditing(document, culture, segment), document => document.TryPublishValues(culture, segment), userId);
}
///
diff --git a/src/Umbraco.Tests/Integration/ContentEventsTests.cs b/src/Umbraco.Tests/Integration/ContentEventsTests.cs
index 502178377e..c87774ba27 100644
--- a/src/Umbraco.Tests/Integration/ContentEventsTests.cs
+++ b/src/Umbraco.Tests/Integration/ContentEventsTests.cs
@@ -106,17 +106,17 @@ namespace Umbraco.Tests.Integration
private IContent CreateBranch()
{
var content1 = MockedContent.CreateSimpleContent(_contentType, "Content1");
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
// 2 (published)
// .1 (published)
// .2 (not published)
var content2 = MockedContent.CreateSimpleContent(_contentType, "Content2", content1);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
var content21 = MockedContent.CreateSimpleContent(_contentType, "Content21", content2);
- content21.PublishValues();
+ content21.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content21);
var content22 = MockedContent.CreateSimpleContent(_contentType, "Content22", content2);
ServiceContext.ContentService.Save(content22);
@@ -135,12 +135,12 @@ namespace Umbraco.Tests.Integration
// .1 (published)
// .2 (not published)
var content4 = MockedContent.CreateSimpleContent(_contentType, "Content4", content1);
- content4.PublishValues();
+ content4.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content4);
content4.Name = "Content4X";
ServiceContext.ContentService.Save(content4);
var content41 = MockedContent.CreateSimpleContent(_contentType, "Content41", content4);
- content41.PublishValues();
+ content41.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content41);
var content42 = MockedContent.CreateSimpleContent(_contentType, "Content42", content4);
ServiceContext.ContentService.Save(content42);
@@ -149,10 +149,10 @@ namespace Umbraco.Tests.Integration
// .1 (published)
// .2 (not published)
var content5 = MockedContent.CreateSimpleContent(_contentType, "Content5", content1);
- content5.PublishValues();
+ content5.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content5);
var content51 = MockedContent.CreateSimpleContent(_contentType, "Content51", content5);
- content51.PublishValues();
+ content51.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content51);
var content52 = MockedContent.CreateSimpleContent(_contentType, "Content52", content5);
ServiceContext.ContentService.Save(content52);
@@ -439,7 +439,7 @@ namespace Umbraco.Tests.Integration
var content = ServiceContext.ContentService.GetRootContent().FirstOrDefault();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
@@ -476,7 +476,7 @@ namespace Umbraco.Tests.Integration
var content = ServiceContext.ContentService.GetRootContent().FirstOrDefault();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
@@ -513,7 +513,7 @@ namespace Umbraco.Tests.Integration
var content = ServiceContext.ContentService.GetRootContent().FirstOrDefault();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
@@ -553,7 +553,7 @@ namespace Umbraco.Tests.Integration
ResetEvents();
content.Name = "changed";
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
Assert.AreEqual(2, _msgCount);
@@ -574,12 +574,12 @@ namespace Umbraco.Tests.Integration
var content = ServiceContext.ContentService.GetRootContent().FirstOrDefault();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
content.Name = "changed";
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
Assert.AreEqual(2, _msgCount);
@@ -606,7 +606,7 @@ namespace Umbraco.Tests.Integration
ResetEvents();
content.Name = "changed";
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
Assert.AreEqual(2, _msgCount);
@@ -630,12 +630,12 @@ namespace Umbraco.Tests.Integration
var content = ServiceContext.ContentService.GetRootContent().FirstOrDefault();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
content.Name = "changed";
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
Assert.AreEqual(2, _msgCount);
@@ -656,7 +656,7 @@ namespace Umbraco.Tests.Integration
var content = ServiceContext.ContentService.GetRootContent().FirstOrDefault();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
@@ -680,7 +680,7 @@ namespace Umbraco.Tests.Integration
var content = ServiceContext.ContentService.GetRootContent().FirstOrDefault();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
content.Name = "changed";
ServiceContext.ContentService.Save(content);
@@ -741,7 +741,7 @@ namespace Umbraco.Tests.Integration
ServiceContext.ContentService.Unpublish(content1);
ResetEvents();
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
Assert.AreEqual(2, _msgCount);
@@ -984,7 +984,7 @@ namespace Umbraco.Tests.Integration
var content = CreateContent();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
@@ -1008,7 +1008,7 @@ namespace Umbraco.Tests.Integration
var content = CreateContent();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ServiceContext.ContentService.MoveToRecycleBin(content);
@@ -1033,7 +1033,7 @@ namespace Umbraco.Tests.Integration
var content = CreateContent();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
content.Properties.First().SetValue("changed");
ServiceContext.ContentService.Save(content);
@@ -1204,7 +1204,7 @@ namespace Umbraco.Tests.Integration
{
var content = CreateContent();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
@@ -1224,7 +1224,7 @@ namespace Umbraco.Tests.Integration
{
var content = CreateContent();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
content.Properties.First().SetValue("changed");
ServiceContext.ContentService.Save(content);
@@ -1246,11 +1246,11 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent(content1.Id);
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
ServiceContext.ContentService.Unpublish(content1);
@@ -1332,7 +1332,7 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent();
Assert.IsNotNull(content2);
@@ -1354,7 +1354,7 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
content1.Properties.First().SetValue("changed");
ServiceContext.ContentService.Save(content1);
@@ -1380,7 +1380,7 @@ namespace Umbraco.Tests.Integration
Assert.IsNotNull(content1);
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
ResetEvents();
@@ -1402,11 +1402,11 @@ namespace Umbraco.Tests.Integration
Assert.IsNotNull(content1);
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
var content3 = CreateContent();
Assert.IsNotNull(content3);
- content3.PublishValues();
+ content3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content3);
ServiceContext.ContentService.Unpublish(content2);
@@ -1427,11 +1427,11 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
ResetEvents();
@@ -1451,15 +1451,15 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
var content3 = CreateContent(content2.Id);
Assert.IsNotNull(content3);
- content3.PublishValues();
+ content3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content3);
ServiceContext.ContentService.Unpublish(content2);
@@ -1480,13 +1480,13 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
content1.Properties.First().SetValue("changed");
ServiceContext.ContentService.Save(content1);
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
ResetEvents();
@@ -1506,17 +1506,17 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
content1.Properties.First().SetValue("changed");
ServiceContext.ContentService.Save(content1);
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
var content3 = CreateContent(content2.Id);
Assert.IsNotNull(content3);
- content3.PublishValues();
+ content3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content3);
ServiceContext.ContentService.Unpublish(content2);
@@ -1537,16 +1537,16 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent(content1.Id);
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
ServiceContext.ContentService.Unpublish(content1);
var content3 = CreateContent();
Assert.IsNotNull(content3);
- content3.PublishValues();
+ content3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content3);
ResetEvents();
@@ -1566,20 +1566,20 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent(content1.Id);
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
ServiceContext.ContentService.Unpublish(content1);
var content3 = CreateContent();
Assert.IsNotNull(content3);
- content3.PublishValues();
+ content3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content3);
var content4 = CreateContent(content3.Id);
Assert.IsNotNull(content4);
- content4.PublishValues();
+ content4.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content4);
ServiceContext.ContentService.Unpublish(content3);
@@ -1600,18 +1600,18 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent(content1.Id);
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
content2.Properties.First().SetValue("changed");
ServiceContext.ContentService.Save(content2);
ServiceContext.ContentService.Unpublish(content1);
var content3 = CreateContent();
Assert.IsNotNull(content3);
- content3.PublishValues();
+ content3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content3);
ResetEvents();
@@ -1631,22 +1631,22 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent(content1.Id);
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
content2.Properties.First().SetValue("changed");
ServiceContext.ContentService.Save(content2);
ServiceContext.ContentService.Unpublish(content1);
var content3 = CreateContent();
Assert.IsNotNull(content3);
- content3.PublishValues();
+ content3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content3);
var content4 = CreateContent(content3.Id);
Assert.IsNotNull(content4);
- content4.PublishValues();
+ content4.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content4);
ServiceContext.ContentService.Unpublish(content3);
@@ -1667,11 +1667,11 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent(content1.Id);
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
ServiceContext.ContentService.Unpublish(content1);
var content3 = CreateContent();
@@ -1694,11 +1694,11 @@ namespace Umbraco.Tests.Integration
{
var content1 = CreateContent();
Assert.IsNotNull(content1);
- content1.PublishValues();
+ content1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content1);
var content2 = CreateContent(content1.Id);
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
content2.Properties.First().SetValue("changed");
ServiceContext.ContentService.Save(content2);
@@ -1778,7 +1778,7 @@ namespace Umbraco.Tests.Integration
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
ResetEvents();
@@ -1832,11 +1832,11 @@ namespace Umbraco.Tests.Integration
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
var content3 = CreateContent(content2.Id);
Assert.IsNotNull(content3);
- content3.PublishValues();
+ content3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content3);
ServiceContext.ContentService.Unpublish(content2);
@@ -1891,7 +1891,7 @@ namespace Umbraco.Tests.Integration
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
ServiceContext.ContentService.Move(content1, content2.Id);
@@ -2001,11 +2001,11 @@ namespace Umbraco.Tests.Integration
var content2 = CreateContent();
Assert.IsNotNull(content2);
- content2.PublishValues();
+ content2.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content2);
var content3 = CreateContent(content2.Id);
Assert.IsNotNull(content3);
- content3.PublishValues();
+ content3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content3);
ServiceContext.ContentService.Unpublish(content2);
@@ -2081,7 +2081,7 @@ namespace Umbraco.Tests.Integration
{
var content = CreateContent();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
@@ -2101,7 +2101,7 @@ namespace Umbraco.Tests.Integration
{
var content = CreateContent();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
var content2 = CreateContent();
Assert.IsNotNull(content2);
@@ -2124,7 +2124,7 @@ namespace Umbraco.Tests.Integration
{
var content = CreateBranch();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
ResetEvents();
@@ -2166,17 +2166,17 @@ namespace Umbraco.Tests.Integration
{
var content = CreateContent();
Assert.IsNotNull(content);
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
var v1 = content.VersionId;
content.Properties.First().SetValue("changed");
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
var v2 = content.VersionId;
content.Properties.First().SetValue("again");
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
var v3 = content.VersionId;
@@ -2210,12 +2210,12 @@ namespace Umbraco.Tests.Integration
Assert.IsFalse(content.IsPropertyDirty("Published"));
Assert.IsFalse(content.WasPropertyDirty("Published"));
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
Assert.IsFalse(content.IsPropertyDirty("Published"));
Assert.IsTrue(content.WasPropertyDirty("Published")); // has just been published
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
Assert.IsFalse(content.IsPropertyDirty("Published"));
Assert.IsFalse(content.WasPropertyDirty("Published")); // was published already
diff --git a/src/Umbraco.Tests/Models/VariationTests.cs b/src/Umbraco.Tests/Models/VariationTests.cs
index 5bfd3f2de5..0bb1da5cc1 100644
--- a/src/Umbraco.Tests/Models/VariationTests.cs
+++ b/src/Umbraco.Tests/Models/VariationTests.cs
@@ -215,7 +215,7 @@ namespace Umbraco.Tests.Models
// can publish value
// and get edited and published values
- content.PublishValues();
+ content.TryPublishValues();
Assert.AreEqual("a", content.GetValue("prop"));
Assert.AreEqual("a", content.GetValue("prop", published: true));
@@ -244,9 +244,9 @@ namespace Umbraco.Tests.Models
// can publish value
// and get edited and published values
- Assert.Throws(() => content.PublishValues(langFr)); // no name
+ Assert.Throws(() => content.TryPublishValues(langFr)); // no name
content.SetName(langFr, "name-fr");
- content.PublishValues(langFr);
+ content.TryPublishValues(langFr);
Assert.AreEqual("b", content.GetValue("prop"));
Assert.IsNull(content.GetValue("prop", published: true));
Assert.AreEqual("c", content.GetValue("prop", langFr));
@@ -260,7 +260,7 @@ namespace Umbraco.Tests.Models
Assert.IsNull(content.GetValue("prop", langFr, published: true));
// can publish all
- content.PublishAllValues();
+ content.TryPublishAllValues();
Assert.AreEqual("b", content.GetValue("prop"));
Assert.AreEqual("b", content.GetValue("prop", published: true));
Assert.AreEqual("c", content.GetValue("prop", langFr));
@@ -322,12 +322,12 @@ namespace Umbraco.Tests.Models
content.SetValue("prop", "a-es", langEs);
// cannot publish without a name
- Assert.Throws(() => content.PublishValues(langFr));
+ Assert.Throws(() => content.TryPublishValues(langFr));
// works with a name
// and then FR is available, and published
content.SetName(langFr, "name-fr");
- content.PublishValues(langFr);
+ content.TryPublishValues(langFr);
// now UK is available too
content.SetName(langUk, "name-uk");
diff --git a/src/Umbraco.Tests/Persistence/NPocoTests/PetaPocoCachesTest.cs b/src/Umbraco.Tests/Persistence/NPocoTests/PetaPocoCachesTest.cs
index 3bc419ea95..0afc581f83 100644
--- a/src/Umbraco.Tests/Persistence/NPocoTests/PetaPocoCachesTest.cs
+++ b/src/Umbraco.Tests/Persistence/NPocoTests/PetaPocoCachesTest.cs
@@ -187,13 +187,13 @@ namespace Umbraco.Tests.Persistence.NPocoTests
contentTypeService.Save(contentType);
var content1 = MockedContent.CreateSimpleContent(contentType, "Tagged content 1", -1);
content1.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
id2 = content1.Id;
var content2 = MockedContent.CreateSimpleContent(contentType, "Tagged content 2", -1);
content2.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content2.PublishValues();
+ content2.TryPublishValues();
contentService.SaveAndPublish(content2);
id3 = content2.Id;
diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
index f01c59df03..caa2453aed 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
@@ -140,7 +140,7 @@ namespace Umbraco.Tests.Persistence.Repositories
// publish = new edit version
content1.SetValue("title", "title");
- ((Content) content1).PublishValues();
+ ((Content) content1).TryPublishValues();
((Content) content1).PublishedState = PublishedState.Publishing;
repository.Save(content1);
@@ -202,7 +202,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(false, scope.Database.ExecuteScalar($"SELECT published FROM {Constants.DatabaseSchema.Tables.Document} WHERE nodeId=@id", new { id = content1.Id }));
// publish = version
- ((Content) content1).PublishValues();
+ ((Content) content1).TryPublishValues();
((Content) content1).PublishedState = PublishedState.Publishing;
repository.Save(content1);
@@ -238,7 +238,7 @@ namespace Umbraco.Tests.Persistence.Repositories
// publish = new version
content1.Name = "name-4";
content1.SetValue("title", "title-4");
- ((Content) content1).PublishValues();
+ ((Content) content1).TryPublishValues();
((Content) content1).PublishedState = PublishedState.Publishing;
repository.Save(content1);
@@ -648,7 +648,7 @@ namespace Umbraco.Tests.Persistence.Repositories
// publish them all
foreach (var content in result)
{
- content.PublishValues();
+ content.TryPublishValues();
repository.Save(content);
}
diff --git a/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs b/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs
index bb3b41d128..06c13b2733 100644
--- a/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs
+++ b/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs
@@ -146,7 +146,7 @@ namespace Umbraco.Tests.Scoping
using (var scope = ScopeProvider.CreateScope())
{
- item.PublishValues();
+ item.TryPublishValues();
Current.Services.ContentService.SaveAndPublish(item);
scope.Complete();
}
@@ -161,7 +161,7 @@ namespace Umbraco.Tests.Scoping
using (var scope = ScopeProvider.CreateScope())
{
item.Name = "changed";
- item.PublishValues();
+ item.TryPublishValues();
Current.Services.ContentService.SaveAndPublish(item);
if (complete)
diff --git a/src/Umbraco.Tests/Scoping/ScopedXmlTests.cs b/src/Umbraco.Tests/Scoping/ScopedXmlTests.cs
index 258056f198..899d2f999e 100644
--- a/src/Umbraco.Tests/Scoping/ScopedXmlTests.cs
+++ b/src/Umbraco.Tests/Scoping/ScopedXmlTests.cs
@@ -123,10 +123,10 @@ namespace Umbraco.Tests.Scoping
using (var scope = ScopeProvider.CreateScope())
{
- item.PublishValues();
+ item.TryPublishValues();
Current.Services.ContentService.SaveAndPublish(item); // should create an xml clone
item.Name = "changed";
- item.PublishValues();
+ item.TryPublishValues();
Current.Services.ContentService.SaveAndPublish(item); // should re-use the xml clone
// this should never change
@@ -230,13 +230,13 @@ namespace Umbraco.Tests.Scoping
using (var scope = ScopeProvider.CreateScope())
{
- item.PublishValues();
+ item.TryPublishValues();
Current.Services.ContentService.SaveAndPublish(item);
for (var i = 0; i < count; i++)
{
var temp = new Content("content_" + i, -1, contentType);
- temp.PublishValues();
+ temp.TryPublishValues();
Current.Services.ContentService.SaveAndPublish(temp);
ids[i] = temp.Id;
}
diff --git a/src/Umbraco.Tests/Services/ContentServiceTests.cs b/src/Umbraco.Tests/Services/ContentServiceTests.cs
index c45d9be5f3..8bb5f1bc9e 100644
--- a/src/Umbraco.Tests/Services/ContentServiceTests.cs
+++ b/src/Umbraco.Tests/Services/ContentServiceTests.cs
@@ -182,16 +182,16 @@ namespace Umbraco.Tests.Services
{
var contentService = ServiceContext.ContentService;
var root = ServiceContext.ContentService.GetById(NodeDto.NodeIdSeed + 1);
- root.PublishValues();
+ root.TryPublishValues();
Assert.IsTrue(contentService.SaveAndPublish(root).Success);
var content = contentService.CreateAndSave("Test", -1, "umbTextpage", 0);
- content.PublishValues();
+ content.TryPublishValues();
Assert.IsTrue(contentService.SaveAndPublish(content).Success);
var hierarchy = CreateContentHierarchy().OrderBy(x => x.Level).ToArray();
contentService.Save(hierarchy, 0);
foreach (var c in hierarchy)
{
- c.PublishValues();
+ c.TryPublishValues();
Assert.IsTrue(contentService.SaveAndPublish(c).Success);
}
@@ -241,7 +241,7 @@ namespace Umbraco.Tests.Services
// Assert
- content.PublishValues();
+ content.TryPublishValues();
Assert.IsTrue(contentService.SaveAndPublish(content).Success);
}
@@ -256,7 +256,7 @@ namespace Umbraco.Tests.Services
for (var i = 0; i < 20; i++)
{
content.SetValue("bodyText", "hello world " + Guid.NewGuid());
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
}
@@ -395,12 +395,12 @@ namespace Umbraco.Tests.Services
var content1 = MockedContent.CreateSimpleContent(contentType, "Tagged content 1", -1);
content1.AssignTags("tags", new[] { "hello", "world", "some", "tags", "plus" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
var content2 = MockedContent.CreateSimpleContent(contentType, "Tagged content 2", -1);
content2.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content2.PublishValues();
+ content2.TryPublishValues();
contentService.SaveAndPublish(content2);
// verify
@@ -436,7 +436,7 @@ namespace Umbraco.Tests.Services
allTags = tagService.GetAllContentTags();
Assert.AreEqual(4, allTags.Count());
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
Assert.IsTrue(content1.Published);
@@ -466,12 +466,12 @@ namespace Umbraco.Tests.Services
var content1 = MockedContent.CreateSimpleContent(contentType, "Tagged content 1", -1);
content1.AssignTags("tags", new[] { "hello", "world", "some", "tags", "bam" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
var content2 = MockedContent.CreateSimpleContent(contentType, "Tagged content 2", -1);
content2.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content2.PublishValues();
+ content2.TryPublishValues();
contentService.SaveAndPublish(content2);
// verify
@@ -507,9 +507,9 @@ namespace Umbraco.Tests.Services
allTags = tagService.GetAllContentTags();
Assert.AreEqual(0, allTags.Count());
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
- content2.PublishValues();
+ content2.TryPublishValues();
contentService.SaveAndPublish(content2);
// tags are back
@@ -538,12 +538,12 @@ namespace Umbraco.Tests.Services
var content1 = MockedContent.CreateSimpleContent(contentType, "Tagged content 1", -1);
content1.AssignTags("tags", new[] { "hello", "world", "some", "tags", "plus" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
var content2 = MockedContent.CreateSimpleContent(contentType, "Tagged content 2", content1.Id);
content2.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content2.PublishValues();
+ content2.TryPublishValues();
contentService.SaveAndPublish(content2);
// verify
@@ -578,7 +578,7 @@ namespace Umbraco.Tests.Services
allTags = tagService.GetAllContentTags();
Assert.AreEqual(0, allTags.Count());
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
Assert.IsTrue(content1.Published);
@@ -616,12 +616,12 @@ namespace Umbraco.Tests.Services
var content1 = MockedContent.CreateSimpleContent(contentType, "Tagged content 1", -1);
content1.AssignTags("tags", new[] { "hello", "world", "some", "tags", "bam" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
var content2 = MockedContent.CreateSimpleContent(contentType, "Tagged content 2", -1);
content2.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content2.PublishValues();
+ content2.TryPublishValues();
contentService.SaveAndPublish(content2);
contentService.Unpublish(content1);
@@ -637,7 +637,7 @@ namespace Umbraco.Tests.Services
var allTags = tagService.GetAllContentTags();
Assert.AreEqual(0, allTags.Count());
- content2.PublishValues();
+ content2.TryPublishValues();
contentService.SaveAndPublish(content2);
tags = tagService.GetTagsForEntity(content2.Id);
@@ -663,12 +663,12 @@ namespace Umbraco.Tests.Services
var content1 = MockedContent.CreateSimpleContent(contentType, "Tagged content 1", -1);
content1.AssignTags("tags", new[] { "hello", "world", "some", "tags", "bam" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
var content2 = MockedContent.CreateSimpleContent(contentType, "Tagged content 2", content1);
content2.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content2.PublishValues();
+ content2.TryPublishValues();
contentService.SaveAndPublish(content2);
contentService.Unpublish(content1);
@@ -684,7 +684,7 @@ namespace Umbraco.Tests.Services
var allTags = tagService.GetAllContentTags();
Assert.AreEqual(0, allTags.Count());
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
tags = tagService.GetTagsForEntity(content2.Id);
@@ -768,7 +768,7 @@ namespace Umbraco.Tests.Services
// create a content with tags and publish
var content = MockedContent.CreateSimpleContent(contentType, "Tagged content", -1);
content.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
// edit tags and save
@@ -808,7 +808,7 @@ namespace Umbraco.Tests.Services
// Act
content.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
// Assert
@@ -839,12 +839,12 @@ namespace Umbraco.Tests.Services
contentTypeService.Save(contentType);
var content = MockedContent.CreateSimpleContent(contentType, "Tagged content", -1);
content.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
// Act
content.AssignTags("tags", new[] { "another", "world" }, merge: true);
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
// Assert
@@ -875,12 +875,12 @@ namespace Umbraco.Tests.Services
contentTypeService.Save(contentType);
var content = MockedContent.CreateSimpleContent(contentType, "Tagged content", -1);
content.AssignTags("tags", new[] { "hello", "world", "some", "tags" });
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
// Act
content.RemoveTags("tags", new[] { "some", "world" });
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
// Assert
@@ -1063,7 +1063,7 @@ namespace Umbraco.Tests.Services
var parent = ServiceContext.ContentService.GetById(NodeDto.NodeIdSeed + 2);
Assert.IsFalse(parent.Published);
- parent.PublishValues();
+ parent.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(parent); // publishing parent, so Text Page 2 can be updated.
var content = contentService.GetById(NodeDto.NodeIdSeed + 4);
@@ -1076,7 +1076,7 @@ namespace Umbraco.Tests.Services
content.Name = "Text Page 2 Updated";
content.SetValue("author", "Jane Doe");
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content); // publishes the current version, creates a version
var version2 = content.VersionId;
@@ -1084,7 +1084,7 @@ namespace Umbraco.Tests.Services
content.Name = "Text Page 2 ReUpdated";
content.SetValue("author", "Bob Hope");
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content); // publishes again, creates a version
var version3 = content.VersionId;
@@ -1151,11 +1151,11 @@ namespace Umbraco.Tests.Services
// Arrange
var contentService = ServiceContext.ContentService;
var root = contentService.GetById(NodeDto.NodeIdSeed + 2);
- root.PublishValues();
+ root.TryPublishValues();
contentService.SaveAndPublish(root);
var content = contentService.GetById(NodeDto.NodeIdSeed + 4);
content.ExpireDate = DateTime.Now.AddSeconds(1);
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
// Act
@@ -1205,7 +1205,7 @@ namespace Umbraco.Tests.Services
// Arrange
var contentService = ServiceContext.ContentService;
var content = contentService.GetById(NodeDto.NodeIdSeed + 2);
- content.PublishValues();
+ content.TryPublishValues();
var published = contentService.SaveAndPublish(content, 0);
using (var scope = ScopeProvider.CreateScope())
@@ -1235,7 +1235,7 @@ namespace Umbraco.Tests.Services
var content = contentService.GetById(NodeDto.NodeIdSeed + 2);
// Act
- content.PublishValues();
+ content.TryPublishValues();
var published = contentService.SaveAndPublish(content, 0);
// Assert
@@ -1249,7 +1249,7 @@ namespace Umbraco.Tests.Services
// Arrange
var contentService = ServiceContext.ContentService;
var parent = contentService.Create("parent", -1, "umbTextpage");
- parent.PublishValues();
+ parent.TryPublishValues();
contentService.SaveAndPublish(parent);
var content = contentService.Create("child", parent, "umbTextpage");
contentService.Save(content);
@@ -1275,7 +1275,7 @@ namespace Umbraco.Tests.Services
Assert.AreEqual("Home", content.Name);
content.Name = "foo";
- content.PublishValues();
+ content.TryPublishValues();
var published = contentService.SaveAndPublish(content, 0);
Assert.That(published.Success, Is.True);
@@ -1316,7 +1316,7 @@ namespace Umbraco.Tests.Services
var parent = contentService.GetById(parentId);
- var parentCanPublishValues = parent.PublishValues();
+ var parentCanPublishValues = parent.TryPublishValues();
var parentPublished = contentService.SaveAndPublish(parent);
// parent can publish values
@@ -1325,7 +1325,7 @@ namespace Umbraco.Tests.Services
Assert.IsTrue(parentPublished.Success);
Assert.IsTrue(parent.Published);
- var contentCanPublishValues = content.PublishValues();
+ var contentCanPublishValues = content.TryPublishValues();
var contentPublished = contentService.SaveAndPublish(content);
// content cannot publish values because they are invalid
@@ -1401,11 +1401,11 @@ namespace Umbraco.Tests.Services
contentService.Save(content);
var parent = contentService.GetById(NodeDto.NodeIdSeed + 2);
- parent.PublishValues();
+ parent.TryPublishValues();
var parentPublished = contentService.SaveAndPublish(parent, 0);//Publish root Home node to enable publishing of 'NodeDto.NodeIdSeed + 3'
// Act
- content.PublishValues();
+ content.TryPublishValues();
var published = contentService.SaveAndPublish(content, 0);
// Assert
@@ -1424,11 +1424,11 @@ namespace Umbraco.Tests.Services
contentService.Save(content, 0);
var parent = contentService.GetById(NodeDto.NodeIdSeed + 2);
- parent.PublishValues();
+ parent.TryPublishValues();
var parentPublished = contentService.SaveAndPublish(parent, 0);//Publish root Home node to enable publishing of 'NodeDto.NodeIdSeed + 3'
// Act
- content.PublishValues();
+ content.TryPublishValues();
var published = contentService.SaveAndPublish(content, 0);
// Assert
@@ -1461,7 +1461,7 @@ namespace Umbraco.Tests.Services
var content = contentService.GetById(NodeDto.NodeIdSeed + 5);
// Act
- content.PublishValues();
+ content.TryPublishValues();
var published = contentService.SaveAndPublish(content, 0);
// Assert
@@ -1479,7 +1479,7 @@ namespace Umbraco.Tests.Services
content.SetValue("author", "Barack Obama");
// Act
- content.PublishValues();
+ content.TryPublishValues();
var published = contentService.SaveAndPublish(content, 0);
// Assert
@@ -1504,14 +1504,14 @@ namespace Umbraco.Tests.Services
content.SetValue("author", "Barack Obama");
// Act
- content.PublishValues();
+ content.TryPublishValues();
var published = contentService.SaveAndPublish(content, 0);
var childContent = contentService.Create("Child", content.Id, "umbTextpage", 0);
// Reset all identity properties
childContent.Id = 0;
childContent.Path = null;
((Content)childContent).ResetIdentity();
- childContent.PublishValues();
+ childContent.TryPublishValues();
var childPublished = contentService.SaveAndPublish(childContent, 0);
// Assert
@@ -1530,12 +1530,12 @@ namespace Umbraco.Tests.Services
var contentService = ServiceContext.ContentService;
var root = contentService.GetById(NodeDto.NodeIdSeed + 2);
- root.PublishValues();
+ root.TryPublishValues();
var rootPublished = contentService.SaveAndPublish(root);
var content = contentService.GetById(NodeDto.NodeIdSeed + 4);
content.Properties["title"].SetValue(content.Properties["title"].GetValue() + " Published");
- content.PublishValues();
+ content.TryPublishValues();
var contentPublished = contentService.SaveAndPublish(content);
var publishedVersion = content.VersionId;
@@ -1835,13 +1835,13 @@ namespace Umbraco.Tests.Services
content1.PropertyValues(obj);
content1.ResetDirtyProperties(false);
ServiceContext.ContentService.Save(content1, 0);
- content1.PublishValues();
+ content1.TryPublishValues();
Assert.IsTrue(ServiceContext.ContentService.SaveAndPublish(content1, 0).Success);
var content2 = MockedContent.CreateBasicContent(contentType);
content2.PropertyValues(obj);
content2.ResetDirtyProperties(false);
ServiceContext.ContentService.Save(content2, 0);
- content2.PublishValues();
+ content2.TryPublishValues();
Assert.IsTrue(ServiceContext.ContentService.SaveAndPublish(content2, 0).Success);
var editorGroup = ServiceContext.UserService.GetUserGroupByAlias("editor");
@@ -1999,7 +1999,7 @@ namespace Umbraco.Tests.Services
Assert.AreEqual(0, contentTags.Length);
// publish
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
// now tags have been set (published)
@@ -2016,7 +2016,7 @@ namespace Umbraco.Tests.Services
Assert.AreEqual(0, copiedTags.Length);
// publish
- copy.PublishValues();
+ copy.TryPublishValues();
contentService.SaveAndPublish(copy);
// now tags have been set (published)
@@ -2035,7 +2035,7 @@ namespace Umbraco.Tests.Services
var parent = ServiceContext.ContentService.GetById(NodeDto.NodeIdSeed + 2);
Assert.IsFalse(parent.Published);
- parent.PublishValues();
+ parent.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(parent); // publishing parent, so Text Page 2 can be updated.
var content = contentService.GetById(NodeDto.NodeIdSeed + 4);
@@ -2052,7 +2052,7 @@ namespace Umbraco.Tests.Services
// non published = edited
Assert.IsTrue(content.Edited);
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content); // new version
var version2 = content.VersionId;
Assert.AreNotEqual(version1, version2);
@@ -2077,7 +2077,7 @@ namespace Umbraco.Tests.Services
content.Name = "Text Page 2 ReReUpdated";
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content); // new version
var version3 = content.VersionId;
Assert.AreNotEqual(version2, version3);
@@ -2133,7 +2133,7 @@ namespace Umbraco.Tests.Services
content = contentService.GetById(content.Id);
Assert.AreEqual("Text Page 2 ReReUpdated", content.Name);
Assert.AreEqual("Jane Doe", content.GetValue("author"));
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
Assert.IsFalse(content.Edited);
content.Name = "Xxx";
@@ -2251,7 +2251,7 @@ namespace Umbraco.Tests.Services
Assert.IsFalse(scope.Database.Exists(content.Id));
}
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
using (var scope = ScopeProvider.CreateScope())
@@ -2393,7 +2393,7 @@ namespace Umbraco.Tests.Services
// becomes Published, !Edited
// creates a new version
// can get published property values
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
Assert.IsTrue(content.Published);
@@ -2548,8 +2548,8 @@ namespace Umbraco.Tests.Services
// act
- content.PublishValues(langFr.IsoCode);
- content.PublishValues(langUk.IsoCode);
+ content.TryPublishValues(langFr.IsoCode);
+ content.TryPublishValues(langUk.IsoCode);
contentService.SaveAndPublish(content);
// both FR and UK have been published,
@@ -2591,7 +2591,7 @@ namespace Umbraco.Tests.Services
// act
- content.PublishValues();
+ content.TryPublishValues();
contentService.SaveAndPublish(content);
// now it has publish name for invariant neutral
@@ -2780,7 +2780,7 @@ namespace Umbraco.Tests.Services
// act
- content.PublishValues(langUk.IsoCode);
+ content.TryPublishValues(langUk.IsoCode);
contentService.SaveAndPublish(content);
content2 = contentService.GetById(content.Id);
diff --git a/src/Umbraco.Tests/Services/ContentTypeServiceTests.cs b/src/Umbraco.Tests/Services/ContentTypeServiceTests.cs
index 1944516164..c9f8ba52ad 100644
--- a/src/Umbraco.Tests/Services/ContentTypeServiceTests.cs
+++ b/src/Umbraco.Tests/Services/ContentTypeServiceTests.cs
@@ -88,7 +88,7 @@ namespace Umbraco.Tests.Services
var contentType = contentTypes[index];
var contentItem = MockedContent.CreateSimpleContent(contentType, "MyName_" + index + "_" + i, parentId);
ServiceContext.ContentService.Save(contentItem);
- contentItem.PublishValues();
+ contentItem.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(contentItem);
parentId = contentItem.Id;
@@ -189,7 +189,7 @@ namespace Umbraco.Tests.Services
var contentType = contentTypes[index];
var contentItem = MockedContent.CreateSimpleContent(contentType, "MyName_" + index + "_" + i, parentId);
ServiceContext.ContentService.Save(contentItem);
- contentItem.PublishValues();
+ contentItem.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(contentItem);
parentId = contentItem.Id;
}
@@ -225,19 +225,19 @@ namespace Umbraco.Tests.Services
var root = MockedContent.CreateSimpleContent(contentType1, "Root", -1);
ServiceContext.ContentService.Save(root);
- root.PublishValues();
+ root.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(root);
var level1 = MockedContent.CreateSimpleContent(contentType2, "L1", root.Id);
ServiceContext.ContentService.Save(level1);
- level1.PublishValues();
+ level1.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(level1);
for (int i = 0; i < 2; i++)
{
var level3 = MockedContent.CreateSimpleContent(contentType3, "L2" + i, level1.Id);
ServiceContext.ContentService.Save(level3);
- level3.PublishValues();
+ level3.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(level3);
}
@@ -267,7 +267,7 @@ namespace Umbraco.Tests.Services
ServiceContext.FileService.SaveTemplate(contentType1.DefaultTemplate);
ServiceContext.ContentTypeService.Save(contentType1);
IContent contentItem = MockedContent.CreateTextpageContent(contentType1, "Testing", -1);
- contentItem.PublishValues();
+ contentItem.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(contentItem);
var initProps = contentItem.Properties.Count;
var initPropTypes = contentItem.PropertyTypes.Count();
@@ -297,14 +297,14 @@ namespace Umbraco.Tests.Services
var contentItems1 = MockedContent.CreateTextpageContent(contentType1, -1, 10).ToArray();
foreach (var x in contentItems1)
{
- x.PublishValues();
+ x.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(x);
}
var contentItems2 = MockedContent.CreateTextpageContent(contentType2, -1, 5).ToArray();
foreach (var x in contentItems2)
{
- x.PublishValues();
+ x.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(x);
}
@@ -362,7 +362,7 @@ namespace Umbraco.Tests.Services
var contentItems1 = MockedContent.CreateTextpageContent(contentType1, -1, 10).ToArray();
foreach (var x in contentItems1)
{
- x.PublishValues();
+ x.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(x);
}
var alias = contentType1.PropertyTypes.First().Alias;
@@ -496,7 +496,7 @@ namespace Umbraco.Tests.Services
// Act
var homeDoc = cs.Create("Home Page", -1, contentTypeAlias);
- homeDoc.PublishValues();
+ homeDoc.TryPublishValues();
cs.SaveAndPublish(homeDoc);
// Assert
diff --git a/src/Umbraco.Tests/Services/PerformanceTests.cs b/src/Umbraco.Tests/Services/PerformanceTests.cs
index b157eb669d..dd84c49ef0 100644
--- a/src/Umbraco.Tests/Services/PerformanceTests.cs
+++ b/src/Umbraco.Tests/Services/PerformanceTests.cs
@@ -249,7 +249,7 @@ namespace Umbraco.Tests.Services
var result = new List();
ServiceContext.ContentTypeService.Save(contentType1);
IContent lastParent = MockedContent.CreateSimpleContent(contentType1);
- lastParent.PublishValues();
+ lastParent.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(lastParent);
result.Add(lastParent);
//create 20 deep
@@ -263,7 +263,7 @@ namespace Umbraco.Tests.Services
//only publish evens
if (j % 2 == 0)
{
- content.PublishValues();
+ content.TryPublishValues();
ServiceContext.ContentService.SaveAndPublish(content);
}
else
diff --git a/src/Umbraco.Tests/Services/TagServiceTests.cs b/src/Umbraco.Tests/Services/TagServiceTests.cs
index 0db27e9f4c..c24c729bf8 100644
--- a/src/Umbraco.Tests/Services/TagServiceTests.cs
+++ b/src/Umbraco.Tests/Services/TagServiceTests.cs
@@ -36,21 +36,21 @@ namespace Umbraco.Tests.Services
IContent content1 = MockedContent.CreateSimpleContent(contentType, "Tagged content 1", -1);
content1.AssignTags("tags", new[] { "cow", "pig", "goat" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
// change
content1.AssignTags("tags", new[] { "elephant" }, true);
content1.RemoveTags("tags", new[] { "cow" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
// more changes
content1.AssignTags("tags", new[] { "mouse" }, true);
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
content1.RemoveTags("tags", new[] { "mouse" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
// get it back
@@ -88,17 +88,17 @@ namespace Umbraco.Tests.Services
var content1 = MockedContent.CreateSimpleContent(contentType, "Tagged content 1", -1);
content1.AssignTags("tags", new[] { "cow", "pig", "goat" });
- content1.PublishValues();
+ content1.TryPublishValues();
contentService.SaveAndPublish(content1);
var content2 = MockedContent.CreateSimpleContent(contentType, "Tagged content 2", -1);
content2.AssignTags("tags", new[] { "cow", "pig" });
- content2.PublishValues();
+ content2.TryPublishValues();
contentService.SaveAndPublish(content2);
var content3 = MockedContent.CreateSimpleContent(contentType, "Tagged content 3", -1);
content3.AssignTags("tags", new[] { "cow" });
- content3.PublishValues();
+ content3.TryPublishValues();
contentService.SaveAndPublish(content3);
// Act
diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs
index 6ce5f049e8..3612ee8847 100644
--- a/src/Umbraco.Web/Editors/ContentController.cs
+++ b/src/Umbraco.Web/Editors/ContentController.cs
@@ -643,22 +643,22 @@ namespace Umbraco.Web.Editors
else
{
//publish the item and check if it worked, if not we will show a diff msg below
- contentItem.PersistedContent.PublishValues(GetLanguageCulture(contentItem.LanguageId)); //we are not checking for a return value here because we've alraedy pre-validated the property values
+ contentItem.PersistedContent.TryPublishValues(GetLanguageCulture(contentItem.LanguageId)); //we are not checking for a return value here because we've already pre-validated the property values
//check if we are publishing other variants and validate them
- var allLangs = Services.LocalizationService.GetAllLanguages().ToList();
+ var allLangs = Services.LocalizationService.GetAllLanguages().ToDictionary(x => x.Id, x => x);
var variantsToValidate = contentItem.PublishVariations.Where(x => x.LanguageId != contentItem.LanguageId).ToList();
foreach (var publishVariation in variantsToValidate)
{
- if (!contentItem.PersistedContent.PublishValues(GetLanguageCulture(publishVariation.LanguageId)))
+ if (!contentItem.PersistedContent.TryPublishValues(GetLanguageCulture(publishVariation.LanguageId)))
{
- var errMsg = Services.TextService.Localize("speechBubbles/contentLangValidationError", new[]{allLangs.First(x => x.Id == publishVariation.LanguageId).CultureName});
+ var errMsg = Services.TextService.Localize("speechBubbles/contentLangValidationError", new[] {allLangs[publishVariation.LanguageId].CultureName});
ModelState.AddModelError("publish_variant_" + publishVariation.LanguageId + "_", errMsg);
}
}
//validate any mandatory variants that are not in the list
- var mandatoryLangs = Mapper.Map, IEnumerable>(allLangs)
+ var mandatoryLangs = Mapper.Map, IEnumerable>(allLangs.Values)
.Where(x => variantsToValidate.All(v => v.LanguageId != x.Id)) //don't include variants above
.Where(x => x.Id != contentItem.LanguageId) //don't include the current variant
.Where(x => x.Mandatory);
@@ -666,7 +666,7 @@ namespace Umbraco.Web.Editors
{
if (contentItem.PersistedContent.Validate(GetLanguageCulture(lang.Id)).Length > 0)
{
- var errMsg = Services.TextService.Localize("speechBubbles/contentReqLangValidationError", new[]{allLangs.First(x => x.Id == lang.Id).CultureName});
+ var errMsg = Services.TextService.Localize("speechBubbles/contentReqLangValidationError", new[]{allLangs[lang.Id].CultureName});
ModelState.AddModelError("publish_variant_" + lang.Id + "_", errMsg);
}
}
@@ -749,7 +749,7 @@ namespace Umbraco.Web.Editors
return HandleContentNotFound(id, false);
}
- foundContent.PublishValues(); // fixme variants?
+ foundContent.TryPublishValues(); // fixme variants?
var publishResult = Services.ContentService.SaveAndPublish(foundContent, Security.GetUserId().ResultOr(0));
if (publishResult.Success == false)
{
diff --git a/src/Umbraco.Web/Models/Mapping/ContentItemDisplayNameResolver.cs b/src/Umbraco.Web/Models/Mapping/ContentItemDisplayNameResolver.cs
index 41383764bb..2e8155e1a7 100644
--- a/src/Umbraco.Web/Models/Mapping/ContentItemDisplayNameResolver.cs
+++ b/src/Umbraco.Web/Models/Mapping/ContentItemDisplayNameResolver.cs
@@ -1,4 +1,5 @@
using AutoMapper;
+using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Web.Models.ContentEditing;
using ContentVariation = Umbraco.Core.Models.ContentVariation;
@@ -13,7 +14,12 @@ namespace Umbraco.Web.Models.Mapping
public string Resolve(IContent source, ContentItemDisplay destination, string destMember, ResolutionContext context)
{
var culture = context.GetCulture();
- return source.GetName(culture);
+ if (culture != null && source.ContentType.Variations.Has(ContentVariation.CultureNeutral))
+ {
+ //return the culture name being requested
+ return source.GetName(culture);
+ }
+ return source.Name;
}
}
}
diff --git a/src/Umbraco.Web/WebServices/BulkPublishController.cs b/src/Umbraco.Web/WebServices/BulkPublishController.cs
index daea5cc58f..714c1ac0db 100644
--- a/src/Umbraco.Web/WebServices/BulkPublishController.cs
+++ b/src/Umbraco.Web/WebServices/BulkPublishController.cs
@@ -29,7 +29,7 @@ namespace Umbraco.Web.WebServices
if (publishDescendants == false)
{
- content.PublishValues(); // fixme variants? validation - when this returns null?
+ content.TryPublishValues(); // fixme variants? validation - when this returns null?
var result = Services.ContentService.SaveAndPublish(content, Security.CurrentUser.Id);
return Json(new
{