Synchronize via the API

Use the SiteSync fluent API to invoke sync operations programmatically.

  1. Get the base SiteSync facade.
    This requires the following using statement: using Telerik.Sitefinity.SiteSync;

    Then, get the facade: App.WorkWith().SiteSync()

  2. Select the target server.

    • If you have only one target, use .SelectDefaultTarget()
    • If you have multiple targets, specify it by calling .SelectTarget("http://targetserver")
  3. If you want to sync data from selected sites only, filter by sites:
    .SetSites("site1", "site2", ...)

  4. Execute the sync operation:

    • For selected types use .Sync(typeof(NewsItem).FullName, ...)
    • For a specific item and a a specific culture use
      .Sync(newsItem, CultureInfo.CurrentCulture)
  5. Schedule a sync operation use
    .ScheduleSync(“30 15 5 3 * 2015”, typeof(NewsItem).FullName, …)

    NOTE: Use Cron format to specify the scheduled time. For more information, see Cron Format.

EXAMPLE: The following code is an example that syncs all news items from Site1:

C#
using Telerik.Sitefinity;
using Telerik.Sitefinity.News.Model;
using Telerik.Sitefinity.SiteSync;
namespace SitefinityWebApp
{
   public class SyncViaAPI
   {
       public void SyncAllNewsFromSite1()
       {
           App
               .WorkWith()
               .SiteSync()
               .SelectDefaultTarget()
               .SetSites("site1")
               .Sync(typeof(NewsItem).FullName);
       }
   }
}

This section contains

Site sync events
The Sitefinity CMS SiteSync module exposes these events when the sync operation starts and when it is complete.
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
New to Sitefinity?