Esempio n. 1
0
        public override RecordLockedData CreateLockInfo(RecordLockedData lockedData)
        {
            RecordLockedData result = null;

            if (lockedData != null)
            {
                result = (RecordLockedData)lockedData.Clone();
                if (result.ID == Guid.Empty)
                {
                    result.ID = CombineGuid.NewComboGuid();
                }

                if (result.LockTime == DateTime.MinValue)
                {
                    result.LockTime = DateTime.UtcNow;
                }

                DbCommand dbCmd = this.InsertCommand;
                Utils.PrepareParameter(dbCmd);
                this.Adapter.SetParametersValue(dbCmd.Parameters, result, false);
                Utils.ResetParameter(dbCmd);

                this.Database.ExecuteNonQuery(dbCmd);
            }
            return(result);
        }
Esempio n. 2
0
        private RecordLockedData CreateLockData(OpenFileItemData itemParam, ref LogicFileInfoData logicFileInfo, Guid userID, DbTransaction trans)
        {
            RecordLockedData result     = null;
            FileAccess       access     = itemParam.FileAccess;
            FileMode         mode       = itemParam.FileMode;
            long             fileLength = -1;

            if (mode == FileMode.Truncate)
            {
                access    |= FileAccess.Write;
                fileLength = 0;
            }
            bool canWrite = (access & FileAccess.Write) != 0;

            if (canWrite)
            {
                if (logicFileInfo == null)
                {
                    logicFileInfo = CreateNewFile(itemParam, userID, trans);
                }
                else
                {
                    logicFileInfo = UpdateFile(itemParam, logicFileInfo, fileLength, userID, trans);
                }
                if (logicFileInfo != null)
                {
                    result = Lock(logicFileInfo.ID, userID);
                }
            }

            return(result);
        }
Esempio n. 3
0
 public static RecordLockedData Lock(RecordLockedData lockedInfo)
 {
     if (lockedInfo != null)
     {
         RecordLockedData result = ServiceProxy.Lock(lockedInfo);
         return(result);
     }
     return(null);
 }
Esempio n. 4
0
        protected RecordLockedData GetLockedInfoData(RecordLockedFetchParameter fetchParam)
        {
            RecordLockedData           result = null;
            RecordLockedDataCollection datas  = this.GetLockedInfo(fetchParam);

            if (datas != null && datas.Count > 0)
            {
                result = datas[0];
            }
            return(result);
        }
Esempio n. 5
0
        private RecordLockedData Lock(Guid fileID, Guid userID)
        {
            RecordLockedData result = null;
            RecordLockedData data   = new RecordLockedData();

            data.ID           = CombineGuid.NewComboGuid();
            data.FormID       = LogicFileFormID;
            data.FormUniqueID = fileID;
            data.LockUserID   = userID;

            RecordLockedManager.ServiceProxy.SetDataProvider(RecordLockedDataProvider);
            result = RecordLockedManager.Lock(data);
            return(result);
        }
Esempio n. 6
0
        protected RecordLockedFetchParameter CreateFetchParameter(RecordLockedData lockedData)
        {
            RecordLockedFetchParameter fetchParam = new RecordLockedFetchParameter();

            if (lockedData.ID != Guid.Empty)
            {
                fetchParam.LockID = lockedData.ID;
            }
            else if (lockedData.FormID != Guid.Empty && lockedData.FormUniqueID != Guid.Empty)
            {
                fetchParam.FormID       = lockedData.FormID;
                fetchParam.FormUniqueID = lockedData.FormUniqueID;
            }
            return(fetchParam);
        }
Esempio n. 7
0
        protected virtual void PrepareLockData(RecordLockedData lockedData)
        {
            if (lockedData.ID == Guid.Empty)
            {
                lockedData.ID = CombineGuid.NewComboGuid();
            }
            if (lockedData.LockTime == DateTime.MinValue)
            {
                lockedData.LockTime = DateTime.UtcNow;
            }

            if (lockedData.ExpireTime < lockedData.LockTime)
            {
                lockedData.ExpireTime = lockedData.LockTime.Add(DefaultExpireTimeSpan);
            }
        }
Esempio n. 8
0
        public virtual RecordLockedData Lock(RecordLockedData lockedData)
        {
            RecordLockedData           result     = null;
            RecordLockedFetchParameter fetchParam = CreateFetchParameter(lockedData);
            RecordLockedData           data       = this.GetLockedInfoData(fetchParam);

            if (data != null)
            {
                //if (lockedData.FormID != Guid.Empty
                //    && lockedData.FormUniqueID != Guid.Empty
                //    && data.FormID != Guid.Empty
                //    && data.FormUniqueID != Guid.Empty
                //    && data.FormID != lockedData.FormID
                //    && data.FormUniqueID != lockedData.FormUniqueID)
                //{
                //    __Error.RecordHasLocked(data.FormID, data.FormUniqueID);
                //}
                if (lockedData.FormID != Guid.Empty &&
                    lockedData.FormUniqueID != Guid.Empty &&
                    data.FormID != Guid.Empty &&
                    data.FormUniqueID != Guid.Empty
                    )
                {
                    if ((data.FormID != lockedData.FormID ||
                         data.FormUniqueID != lockedData.FormUniqueID) &&
                        data.ExpireTime > DateTime.UtcNow
                        )
                    {
                        __Error.RecordHasLocked(data.FormID, data.FormUniqueID);
                    }
                    else if (data.FormID == lockedData.FormID &&
                             data.FormUniqueID == lockedData.FormUniqueID &&
                             data.ID != lockedData.ID &&
                             data.ExpireTime > DateTime.UtcNow)
                    {
                        __Error.RecordHasLocked(data.FormID, data.FormUniqueID);
                    }
                }
            }
            else
            {
                data = (RecordLockedData)lockedData.Clone();
            }
            this.PrepareLockData(data);
            result = this.DataProvider.CreateLockInfo(data);
            return(result);
        }
Esempio n. 9
0
 public abstract RecordLockedData CreateLockInfo(RecordLockedData lockedData);