예제 #1
0
        internal UniqueDocumentInfo MakeUnique(IUniqueNameManager manager, DocumentFlags?defaultFlags)
        {
            var info = this;

            if (!info.Flags.HasValue && defaultFlags.HasValue)
            {
                info.Flags = defaultFlags;
            }

            if (uniqueId < 1)
            {
                uniqueId = Interlocked.Increment(ref lastUniqueId).ToUnsigned();
            }

            var uniqueName = manager.GetUniqueName(Name, Category.DefaultName);

            if (info.Flags.GetValueOrDefault().HasFlag(DocumentFlags.IsTransient))
            {
                uniqueName += " [temp]";
            }

            return(new UniqueDocumentInfo(info, uniqueId, uniqueName));
        }
예제 #2
0
 internal UniqueDocumentInfo MakeUnique(IUniqueNameManager manager)
 {
     return(MakeUnique(manager, null));
 }