public long GetNextRevisionNumber(string name, IStorageActionsAccessor accessor) { long revision = 1; var existingFile = accessor.ReadFile(name); if (existingFile != null) { RavenJToken existingRevisionToken; if (existingFile.Metadata.TryGetValue(VersioningUtil.RavenFileRevision, out existingRevisionToken)) { revision = existingRevisionToken.Value <int>() + 1; } } else { var latestRevisionsFile = GetLatestRevisionsFile(name, accessor); if (latestRevisionsFile != null) { var id = latestRevisionsFile.FullPath; if (id.StartsWith(name, StringComparison.CurrentCultureIgnoreCase)) { var revisionNum = id.Substring((name + "/revisions/").Length); int result; if (int.TryParse(revisionNum, out result)) { revision = result + 1; } } } } return(revision); }
public long GetNextRevisionNumber(string name, IStorageActionsAccessor accessor) { long revision = 1; int latestRevision; var existingFile = accessor.ReadFile(name); if (existingFile != null && existingFile.Metadata.ContainsKey(SynchronizationConstants.RavenDeleteMarker) == false) { RavenJToken existingRevisionToken; if (existingFile.Metadata.TryGetValue(VersioningUtil.RavenFileRevision, out existingRevisionToken)) { revision = existingRevisionToken.Value <int>() + 1; } } else if (TryGetLatestRevisionNumber(name, accessor, out latestRevision)) { revision = latestRevision + 1; } return(revision); }
private static long GetNextRevisionNumber(string name, IStorageActionsAccessor accessor) { long revision = 1; var existingFile = accessor.ReadFile(name); if (existingFile != null) { RavenJToken existingRevisionToken; if (existingFile.Metadata.TryGetValue(VersioningUtil.RavenFileRevision, out existingRevisionToken)) revision = existingRevisionToken.Value<int>() + 1; } else { var latestRevisionsFile = GetLatestRevisionsFile(name, accessor); if (latestRevisionsFile != null) { var id = latestRevisionsFile.FullPath; if (id.StartsWith(name, StringComparison.CurrentCultureIgnoreCase)) { var revisionNum = id.Substring((name + "/revisions/").Length); int result; if (int.TryParse(revisionNum, out result)) revision = result + 1; } } } return revision; }