public string GetSynchronized(SyncParams syncParams) { string tcmURI = syncParams.Tcm; string status = string.Empty; try { if (!string.IsNullOrEmpty(tcmURI) && TcmUri.IsValid(tcmURI)) { SynchronizeOptions syncOptions = GetSyncOptions(syncParams.Flag); TcmUri uri = new TcmUri(tcmURI); switch (uri.ItemType) { case ItemType.Schema: status = SyncAllComponentsBasedOnSchema(tcmURI, uri.GetContextRepositoryUri(), syncOptions); break; case ItemType.Component: SynchronizationResult result = Client.SynchronizeWithSchemaAndUpdate(tcmURI, syncOptions); status = string.Format("Component Synchronization is successfull for Component: {0} ({1})", result.SynchronizedItem.Title, result.SynchronizedItem.Id); break; } return(status); } else { return("Component Synchronization Failed - Invalid TCM URI"); } } catch (Exception ex) { string errorMessage = "An error occured while synchronizing components. Error Message: " + ex.Message + ex.StackTrace; return(errorMessage); } }
private SynchronizeOptions GetSyncOptions(string syncOptionParam) { SynchronizeOptions syncOptions = new SynchronizeOptions(); SynchronizeFlags parsedEnum; if (Enum.TryParse <SynchronizeFlags>(syncOptionParam, true, out parsedEnum)) { syncOptions.SynchronizeFlags = parsedEnum; } else { syncOptions.SynchronizeFlags = SynchronizeFlags.UnknownByClient; } return(syncOptions); }
private string SyncAllComponentsBasedOnSchema(string tcmURI, string pubID, SynchronizeOptions syncOptions) { string status = string.Empty; try { XElement allSchemaBasedComponent = GetAllComponentsBasedOnSchema(tcmURI, pubID); if (allSchemaBasedComponent != null) { StringBuilder success = new StringBuilder(); StringBuilder failure = new StringBuilder(); bool showFailureMessage = false; success.Append("Component Synchronization is Successful for Components: "); failure.Append("Component Synchronization is Failed for Components: "); for (IEnumerator <XElement> e = allSchemaBasedComponent.Descendants().GetEnumerator(); e.MoveNext();) { string comp_tcmURI = e.Current.Attribute(XName.Get("ID")).Value; try { SynchronizationResult result = Client.SynchronizeWithSchemaAndUpdate(comp_tcmURI, syncOptions); success.Append(string.Format("{0} ({1}){2}", result.SynchronizedItem.Title, result.SynchronizedItem.Id, " , ")); } catch (Exception ex) { showFailureMessage = true; failure.Append(string.Format("{0}{1}", comp_tcmURI, " , ")); } } status = showFailureMessage ? string.Concat(success.ToString().TrimEnd(','), failure.ToString().TrimEnd(',')) : success.ToString().TrimEnd(','); } else { status = "No component to synchronize"; } } catch (Exception ex) { status += "An error has occured while synchronizing components based on Schema - " + tcmURI + ex.Message + ex.StackTrace; } return(status); }