diff --git a/src/Sitecore.Ship.Core/Domain/ItemToPublishProperties.cs b/src/Sitecore.Ship.Core/Domain/ItemToPublishProperties.cs new file mode 100644 index 0000000..5319e8d --- /dev/null +++ b/src/Sitecore.Ship.Core/Domain/ItemToPublishProperties.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; + +namespace Sitecore.Ship.Core.Domain +{ + public class ItemToPublishProperties + { + public Guid ItemId { get; set; } + public bool PublishChildren { get; set; } + public bool PublishRelatedItems { get; set; } + + public ItemToPublishProperties() + { + ItemId = new Guid(); + PublishChildren = false; + PublishRelatedItems = false; + } + } +} \ No newline at end of file diff --git a/src/Sitecore.Ship.Core/Domain/ItemsToPublish.cs b/src/Sitecore.Ship.Core/Domain/ItemsToPublish.cs index dc91859..6e5494a 100644 --- a/src/Sitecore.Ship.Core/Domain/ItemsToPublish.cs +++ b/src/Sitecore.Ship.Core/Domain/ItemsToPublish.cs @@ -5,13 +5,13 @@ namespace Sitecore.Ship.Core.Domain { public class ItemsToPublish { - public List Items { get; set; } + public List Items { get; set; } public string[] TargetDatabases { get; set; } public string[] TargetLanguages { get; set; } public ItemsToPublish() { - Items = new List(); + Items = new List(); TargetDatabases = new string[] { }; TargetLanguages = new string[] { }; } diff --git a/src/Sitecore.Ship.Core/Sitecore.Ship.Core.csproj b/src/Sitecore.Ship.Core/Sitecore.Ship.Core.csproj index 48156c0..95446e1 100644 --- a/src/Sitecore.Ship.Core/Sitecore.Ship.Core.csproj +++ b/src/Sitecore.Ship.Core/Sitecore.Ship.Core.csproj @@ -68,6 +68,7 @@ + diff --git a/src/Sitecore.Ship.Infrastructure/PublishService.cs b/src/Sitecore.Ship.Infrastructure/PublishService.cs index a036f49..c3ba7eb 100644 --- a/src/Sitecore.Ship.Infrastructure/PublishService.cs +++ b/src/Sitecore.Ship.Infrastructure/PublishService.cs @@ -42,14 +42,16 @@ public void Run(ItemsToPublish itemsToPublish) { var master = Sitecore.Configuration.Factory.GetDatabase("master"); var languages = itemsToPublish.TargetLanguages.Select(LanguageManager.GetLanguage).ToArray(); + var databases = itemsToPublish.TargetDatabases.Select(Sitecore.Configuration.Factory.GetDatabase).ToArray(); - foreach (var itemToPublish in itemsToPublish.Items) + + foreach (var itemToPublish in itemsToPublish.Items) { - var item = master.GetItem(new ID(itemToPublish)); - if (item != null) + var item = master.GetItem(new ID(itemToPublish.ItemId)); + if (item != null) { - Publishing.PublishManager.PublishItem(item, itemsToPublish.TargetDatabases.Select(Sitecore.Configuration.Factory.GetDatabase).ToArray(), languages, true, true); - } + Publishing.PublishManager.PublishItem(item, databases, languages, itemToPublish.PublishChildren, true, itemToPublish.PublishRelatedItems); + } } } }