Reputation: 336
I'm writing a simple function that updates/creates nodes from an XML data-source (about 400 nodes) and I'm wondering what the best way to save and publish all the nodes is. I've noticed that you can Save
a list of nodes but there's no SaveAndPublish
equivalent.
Should I just iterate over the list and call SaveAndPublish
for each node or is there a better way? If there is an alternative, is there any difference in terms of performance?
Any answers would be greatly appreciated!
Upvotes: 3
Views: 1682
Reputation: 121
You are correct there is no Publish
or SaveAndPublish
option that takes in an IEnumerable like the Save
method. It could be handy as it could save some lines of code.
The most valid option currently to achieve what you want is to do the following.
var cs = ApplicationContext.Current.Services.ContentService;
foreach(var content in yourListOfContentItems)
{
cs.SaveAndPublish(content);
}
Saving your list before publishing by calling Save
method isn't really going to make any differences to you as if Umbraco detects there is new content in your list it processes each individually. And from what I can tell doing that and then calling Publish
after is not going to save you any cycles either because the Publish method calls the same SaveAndPublishDo
method that SaveAndPublish
calls. So might as well go straight for the end result.
Upvotes: 6