Example #1
0
        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);
        }
Example #2
0
        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;
		}