Harry
Harry

Reputation: 336

In Umbraco 6, what is the best way to save and publish a list of nodes with ContentService?

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

Answers (1)

pgregorynz
pgregorynz

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

Related Questions