public void Delete(string fileName, StorageActionsAccessor actionsAccessor = null) { NameValueCollection metadata = null; Action<StorageActionsAccessor> delete = accessor => { accessor.DeleteConfig( RavenFileNameHelper.ConflictConfigNameForFile(fileName)); metadata = accessor.GetFile(fileName, 0, 0).Metadata; metadata.Remove(SynchronizationConstants.RavenSynchronizationConflict); metadata.Remove( SynchronizationConstants.RavenSynchronizationConflictResolution); accessor.UpdateFileMetadata(fileName, metadata); }; if (actionsAccessor != null) { delete(actionsAccessor); } else { storage.Batch(delete); } if (metadata != null) { index.Index(fileName, metadata); } }
private void SaveSynchronizationSourceInformation(ServerInfo sourceServer, Guid lastSourceEtag, StorageActionsAccessor accessor) { var lastSynchronizationInformation = GetLastSynchronization(sourceServer.Id, accessor); if (Buffers.Compare(lastSynchronizationInformation.LastSourceFileEtag.ToByteArray(), lastSourceEtag.ToByteArray()) > 0) { return; } var synchronizationSourceInfo = new SourceSynchronizationInformation { LastSourceFileEtag = lastSourceEtag, SourceServerUrl = sourceServer.Url, DestinationServerId = Storage.Id }; var key = SynchronizationConstants.RavenSynchronizationSourcesBasePath + "/" + sourceServer.Id; accessor.SetConfig(key, synchronizationSourceInfo.AsConfig()); Log.Debug("Saved last synchronized file ETag {0} from {1} ({2})", lastSourceEtag, sourceServer.Url, sourceServer.Id); }
private SourceSynchronizationInformation GetLastSynchronization(Guid from, StorageActionsAccessor accessor) { SourceSynchronizationInformation info; try { info = accessor.GetConfig(SynchronizationConstants.RavenSynchronizationSourcesBasePath + "/" + from).AsObject <SourceSynchronizationInformation>(); } catch (FileNotFoundException) { info = new SourceSynchronizationInformation { LastSourceFileEtag = Guid.Empty, DestinationServerId = Storage.Id }; } return info; }
private void DeleteSynchronizationReport(string fileName, StorageActionsAccessor accessor) { var name = RavenFileNameHelper.SyncResultNameForFile(fileName); accessor.DeleteConfig(name); Search.Delete(name); }
private void SaveSynchronizationReport(string fileName, StorageActionsAccessor accessor, SynchronizationReport report) { var name = RavenFileNameHelper.SyncResultNameForFile(fileName); accessor.SetConfig(name, report.AsConfig()); }
private void StartupProceed(string fileName, StorageActionsAccessor accessor) { // remove previous SyncResult DeleteSynchronizationReport(fileName, accessor); // remove previous .downloading file StorageOperationsTask.IndicateFileToDelete(RavenFileNameHelper.DownloadingFileName(fileName)); }
private static SignatureLevels GetSignatureLevel(string sigName, StorageActionsAccessor accessor) { var fileNameAndLevel = ExtractFileNameAndLevel(sigName); var signatureLevels = accessor.GetSignatures(fileNameAndLevel.FileName); return signatureLevels.FirstOrDefault(item => item.Level == fileNameAndLevel.Level); }
private void ExecuteBatch(Action<StorageActionsAccessor> action) { if (current.Value != null) { action(current.Value); return; } try { using (var storageActionsAccessor = new StorageActionsAccessor(tableColumnsCache, instance, database)) { current.Value = storageActionsAccessor; action(storageActionsAccessor); storageActionsAccessor.Commit(); } } finally { current.Value = null; } }