/// <summary> /// Sorts the SyncActionsCollection so that it can be executed by the database one /// query at a time. The speed is O(2n) where n is the number of SyncActions. /// </summary> public static DataSyncActionsCollection SortSyncActions(DataContext sourceDataContext, DataContext targetDataContext, DataSyncActionsCollection dataSyncActions) { var actionsCollection = new DataSyncActionsCollection(); actionsCollection.AddRange(dataSyncActions.OrderBy(p => (int)p.Type)); return(actionsCollection); }
/// <summary> /// Constructor initializes the instance specific DataSyncManager and sets up all /// objects needed to perform CompareForSync() and Sync() methods from the /// source server and target connection. The source server may be a custom server /// model pulled from a Json file or created on the fly and passed to this DataSyncManager object. /// </summary> /// <param name="sourceServer">The source Server object.</param> /// <param name="targetDataConnectionInfo">target data connection info</param> /// <param name="dataProperties">data properties</param> protected DataSyncManager(Server sourceServer, DataConnectionInfo targetDataConnectionInfo, DataProperties dataProperties) { throw new NotImplementedException(); Exceptions = new List <Exception>(); DataTimer = new DataTimer(); DataSyncActionsCollection = new DataSyncActionsCollection(); DataProperties = dataProperties ?? new DataProperties(); TotalDataEventWaitTime = new TimeSpan(DateTime.Now.Ticks); TotalDataEventWaitTime = TotalDataEventWaitTime.Subtract(TotalDataEventWaitTime); SourceDataConnectionInfo = null; SourceDataConnectionManager = null; SourceServer = sourceServer; // Could be null... TargetServer = null; try { TargetDataConnectionInfo = targetDataConnectionInfo; } catch (Exception ex) { TargetDataConnectionInfo = null; TargetDataConnectionManager = null; Exceptions.Add(ex); } }
//�Public�Methods�(13)� /// <summary> /// Method clears the SyncActions and Exceptions generated during CompareForSync() /// or Sync() method calls. /// </summary> public void Clear() { try { DataSyncActionsCollection.Clear(); Exceptions.Clear(); } catch (Exception exception) { Exceptions.Add(exception); } }
protected DataSyncManager() { throw new NotImplementedException(); Exceptions = new List <Exception>(); DataTimer = new DataTimer(); DataSyncActionsCollection = new DataSyncActionsCollection(); DataProperties = new DataProperties(); TotalDataEventWaitTime = new TimeSpan(DateTime.Now.Ticks); TotalDataEventWaitTime = TotalDataEventWaitTime.Subtract(TotalDataEventWaitTime); SourceDataConnectionInfo = null; SourceDataConnectionManager = null; SourceServer = null; TargetDataConnectionInfo = null; TargetDataConnectionManager = null; TargetServer = null; }
protected virtual StringCollection ScriptInternal(string delimiter) { var sourceDataContext = SourceServer.DataContext; var targetDataContext = TargetServer.DataContext; var stringCollection = new StringCollection(); foreach (var dataSyncAction in DataSyncActionsCollection.Where( dataSyncAction => dataSyncAction.Process)) { SetIsoState(sourceDataContext, targetDataContext, dataSyncAction, stringCollection); stringCollection.Add(dataSyncAction.ScriptAction()); if (!string.IsNullOrEmpty(delimiter)) { stringCollection.Add(delimiter); } } RestoreIsoState(sourceDataContext, targetDataContext, stringCollection); return(stringCollection); }