Пример #1
0
 long GetNextSequence(string sequenceType)
 {
     if (sequenceType == null)
     {
         throw new ArgumentNullException(nameof(sequenceType));
     }
     lock (Locker){
         Lock();
         _sequence = GetNowSequence(sequenceType, _explicitUnitOfWork);
         long nextId = _sequence.NextSequence;
         var  sequenceReleasedObject = _sequence.SequenceReleasedObjects.Where(o => o != null).ToArray().OrderBy(o => o.Sequence)
                                       .FirstOrDefault();
         if (sequenceReleasedObject != null)
         {
             nextId = sequenceReleasedObject.Sequence;
             _explicitUnitOfWork.Delete(sequenceReleasedObject);
         }
         else
         {
             _sequence.NextSequence++;
         }
         _explicitUnitOfWork.FlushChanges();
         return(nextId);
     }
 }
Пример #2
0
 long GetNextSequence(XPClassInfo classInfo, string preFix) {
     if (classInfo == null)
         throw new ArgumentNullException("classInfo");
     var objectByKey = _explicitUnitOfWork.GetObjectByKey(_sequenceObjectType, preFix + classInfo.FullName, true);
     _sequence = objectByKey != null ? (ISequenceObject)objectByKey : CreateSequenceObject(preFix + classInfo.FullName, _explicitUnitOfWork);
     long nextId = _sequence.NextSequence;
     _sequence.NextSequence++;
     _explicitUnitOfWork.FlushChanges();
     return nextId;
 }
Пример #3
0
        long GetNextSequence(XPClassInfo classInfo, string preFix)
        {
            if (classInfo == null)
            {
                throw new ArgumentNullException("classInfo");
            }
            _sequence = GetNowSequence(classInfo, preFix, _explicitUnitOfWork);
            long nextId = _sequence.NextSequence;

            _sequence.NextSequence++;
            _explicitUnitOfWork.FlushChanges();
            return(nextId);
        }
Пример #4
0
        long GetNextSequence(XPClassInfo classInfo, string preFix)
        {
            if (classInfo == null)
            {
                throw new ArgumentNullException("classInfo");
            }
            var objectByKey = _explicitUnitOfWork.GetObjectByKey(_sequenceObjectType, preFix + classInfo.FullName, true);

            _sequence = objectByKey != null ? (ISequenceObject)objectByKey : CreateSequenceObject(preFix + classInfo.FullName, _explicitUnitOfWork);
            long nextId = _sequence.NextSequence;

            _sequence.NextSequence++;
            _explicitUnitOfWork.FlushChanges();
            return(nextId);
        }
Пример #5
0
 long GetNextSequence(XPClassInfo classInfo, string preFix) {
     if (classInfo == null)
         throw new ArgumentNullException("classInfo");
     _sequence=GetNowSequence(classInfo, preFix,_explicitUnitOfWork);
     long nextId = _sequence.NextSequence;
     _sequence.NextSequence++;
     _explicitUnitOfWork.FlushChanges();
     return nextId;
 }