public static IEnumerable <ItemMetadataAdaptor> GetAllMetadataItems(SyncId replicaId) { FilterElement filterEl = new FilterElement(SynchronizationMetadataRow.ColumnReplicaId, FilterElementType.Equal, replicaId.GetGuidId()); return(SynchronizationMetadataRow.List(filterEl).Select(x => new ItemMetadataAdaptor(x))); }
public void SyncFileSystemReplicasOneWay( SyncId sourceReplicaId, SyncId destinationReplicaId, string sourceReplicaRootPath, string destinationReplicaRootPath, FileSyncScopeFilter filter, FileSyncOptions options) { using (var sourceProvider = createFileSyncProvider( sourceReplicaId.GetGuidId(), sourceReplicaRootPath, filter, options)) using (var destinationProvider = createFileSyncProvider( destinationReplicaId.GetGuidId(), destinationReplicaRootPath, filter, options)) { destinationProvider.AppliedChange += destinationProvider_AppliedChange; destinationProvider.SkippedChange += destinationProvider_SkippedChange; sourceProvider.DetectChanges(); destinationProvider.DetectChanges(); synchronizeProviders(destinationProvider, sourceProvider); } }
public void DetectChangesOnFileSystemReplica( SyncId replicaId, string replicaRootPath, FileSyncScopeFilter filter, FileSyncOptions options) { using (var provider = createFileSyncProvider(replicaId.GetGuidId(), replicaRootPath, filter, options)) provider.DetectChanges(); }
/// <summary> /// Открывает хранилище метаданных реплики по ее replicaId. /// </summary> /// <param name="replicaId">The replica id.</param> /// <returns></returns> public static ReplicaMetadataAdaptor CreateInstance(SyncId replicaId) { ReplicaMetadataAdaptor retVal = null; SynchronizationReplicaRow row = null; row = new SynchronizationReplicaRow(replicaId.GetGuidId()); retVal = new ReplicaMetadataAdaptor(row); return(retVal); }
public static ItemMetadataAdaptor CreateInstance(SyncId globalId, SyncId replicaId) { SynchronizationMetadataRow row = new SynchronizationMetadataRow(); ItemMetadataAdaptor retVal = new ItemMetadataAdaptor(row); row.Id = Guid.NewGuid(); row.UniqueId = globalId.GetSyncGlobalId().UniqueId; row.Prefix = (long)globalId.GetSyncGlobalId().Prefix; row.ReplicaId = replicaId.GetGuidId(); return(retVal); }
/// <summary> /// Создает новое хранилище метаданных реплики /// </summary> /// <param name="replicaId">The replica id.</param> /// <param name="idFormats">The id formats.</param> /// <returns></returns> public static ReplicaMetadataAdaptor CreateInstance(SyncId replicaId, SyncIdFormatGroup idFormats) { SynchronizationReplicaRow row = new SynchronizationReplicaRow(); row.TickCount = 1; ReplicaMetadataAdaptor retVal = new ReplicaMetadataAdaptor(row); retVal._replicaRow.PrimaryKeyId = replicaId.GetGuidId(); retVal.ReplicaKeyMap = new ReplicaKeyMap(idFormats, replicaId); retVal.CurrentKnowledge = new SyncKnowledge(idFormats, retVal.ReplicaKeyMap, (ulong)retVal.TickCount); retVal.ForgottenKnowledge = new ForgottenKnowledge(idFormats, retVal.CurrentKnowledge); return(retVal); }
public static ItemMetadataAdaptor FindMetadataItemById(SyncId replicaId, SyncId globalId) { ItemMetadataAdaptor retVal = null; FilterElement filterEl = new AndBlockFilterElement(); filterEl.ChildElements.Add(new FilterElement(SynchronizationMetadataRow.ColumnReplicaId, FilterElementType.Equal, replicaId.GetGuidId())); filterEl.ChildElements.Add(new FilterElement(SynchronizationMetadataRow.ColumnUniqueId, FilterElementType.Equal, globalId.GetSyncGlobalId().UniqueId)); filterEl.ChildElements.Add(new FilterElement(SynchronizationMetadataRow.ColumnPrefix, FilterElementType.Equal, (long)globalId.GetSyncGlobalId().Prefix)); SynchronizationMetadataRow[] itemRows = SynchronizationMetadataRow.List(filterEl); if (itemRows.Length != 0) { retVal = new ItemMetadataAdaptor(itemRows[0]); } return(retVal); }
public static void DetectChangesOnFileSystemReplica( SyncId syncid, string replicaRootPath, FileSyncScopeFilter filter, FileSyncOptions options, DirectoryInfo syncDir, string metadataName) { FileSyncProvider provider = null; try { provider = new FileSyncProvider( syncid.GetGuidId(), replicaRootPath, filter, options, syncDir.FullName, metadataName, syncDir.FullName, null); provider.DetectChanges(); } finally { // Release resources if (provider != null) provider.Dispose(); } }
public static void SyncFileSystemReplicasOneWay( SyncId sourceId, SyncId destId, string sourceReplicaRootPath, string destinationReplicaRootPath, DirectoryInfo syncDir, string sourceMetadata, string targetMetadata, FileSyncScopeFilter filter, FileSyncOptions options) { FileSyncProvider sourceProvider = null; FileSyncProvider destinationProvider = null; try { sourceProvider = new FileSyncProvider( sourceId.GetGuidId(), sourceReplicaRootPath, filter, options, syncDir.FullName, sourceMetadata, syncDir.FullName, null); destinationProvider = new FileSyncProvider( destId.GetGuidId(), destinationReplicaRootPath, filter, options, syncDir.FullName, targetMetadata, syncDir.FullName, null); destinationProvider.AppliedChange += OnAppliedChange; destinationProvider.SkippedChange += OnSkippedChange; SyncOrchestrator agent = new SyncOrchestrator { LocalProvider = sourceProvider, RemoteProvider = destinationProvider, Direction = SyncDirectionOrder.Upload }; // Sync source to destination //Console.WriteLine("Synchronizing changes to replica: " + // destinationProvider.RootDirectoryPath); agent.Synchronize(); } finally { // Release resources if (sourceProvider != null) sourceProvider.Dispose(); if (destinationProvider != null) destinationProvider.Dispose(); } }
//Quick debug mechanism to show what the store "knows" and what it contains... public override string ToString() { StringBuilder buffer = new StringBuilder(); if (_metadataStore == null) { InitializeMetadataStore(); buffer.AppendFormat("{2}Provider {0} has the following for Knowledge: {1}{2}", _replicaId.GetGuidId(), _metadata.GetKnowledge().ToString(), Environment.NewLine); CloseMetadataStore(); } else { buffer.AppendFormat("{2}Provider {0} has the following for Knowledge: {1}{2}", _replicaId.GetGuidId(), _metadata.GetKnowledge().ToString(), Environment.NewLine); } return(buffer.ToString()); }
private SyncId createNewReplicaId(string idFilePath) { SyncId replicaId; using (var idFile = File.Open( idFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite)) using (var sw = new StreamWriter(idFile)) { replicaId = new SyncId(Guid.NewGuid()); sw.WriteLine(replicaId.GetGuidId().ToString("D")); } return replicaId; }
protected virtual FileSyncProvider GenerateProvider() { SyncId syncId = new SyncId(Guid.NewGuid()); return(new FileSyncProvider(syncId.GetGuidId(), ReplicaRootPath, ScopeFilter, SyncOptions)); }