예제 #1
0
        // SyncPermissionFromServer
        //
        public RESULT SyncPermissionFromServer(string credential, ref DateTime last_server_sync_time, out string[] permissionId, out PERMISSION_STATE[] final_state_code)
        {
            // Authenticate
            LoginObjectEntity loginEnity = _purViewManager.GetLoginObject(credential);

            IList<PermissionEntity> tempList = _permissionSyncAdapter.PermissionSyncFromServer(loginEnity, last_server_sync_time, out new_server_download_time);
        }
예제 #2
0
 // PermissionSyncToServer()
 public int PermissionSyncToServer(string permissionID, PERMISSION_STATE targetStateCode, LoginObjectEntity actionUser, out PERMISSION_STATE finalStateCode)
 {
     return _permissionManager.SyncPermissionToServer(permissionID, time, targetStateCode, actionUser, out finalStateCode);
 }
예제 #3
0
        // SyncPermissionsToServer
        //
        public RESULT SyncPermissionsToServer(string credential, string[] permissionId, PERMISSION_STATE[] target_state_code, out PERMISSION_STATE[] final_state_code,out RESULT[] result)
        {
            // Authenticate
            LoginObjectEntity loginEnity = _purViewManager.GetLoginObject(credential);

            // PermissionSyncToServer
            result[i] = (RESULT)_permissionSyncAdapter.PermissionSyncToServer(permissionId[i], target_state_code[i], loginEnity, out final_state_code[i]);
        }
예제 #4
0
        // SyncPermissionToServer()
        public int SyncPermissionToServer(string permissionID, DateTime actionTime, PERMISSION_STATE targetStateCode, LoginObjectEntity actionUser, out PERMISSION_STATE finalStateCode)
        {
            // Get permission from DB
            PermissionEntity entity = _permissionEntityDAO.Get(permissionID);

            // Get STATUS_CODE from T_PERMISSION_STATUS, which
            // - PermissionTypeID = permission.PermissionTypeID
            // - PermissionStatusCode = targetStateCode
            GetFormCodeFromPermissionStatus(entity, targetStateCode, out targetFormCode);

            // If the permission has been updated by ERP server, update finalStateCode as ERP server
            if (entity.ToStatusCode.Trim() != string.Empty)
            {
                finalStateCode = (PERMISSION_STATE)entity.PermissionState;
                return 1;
            }

            // Process one permission (communicate with ERP)
            // Below is the fake code in test
            IFormDataAccessor tempDataAccessor = GetFormDataAccessor(entity.FormCode);
            tempDataAccessor.SyncPermissionToServer(entity, ref actionTime, targetFormCode, ref actionUserCode, out finalFormCode, out actionSystemCode)

            // Update permission
            entity.FormUpdateTime = MBSDateConverter.ConvertTimeToString(actionTime);
            entity.PermissionUpdateTime = MBSDateConverter.ConvertTimeToString(actionTime);
            entity.FormStatusCode = finalFormCode;
            entity.ToStatusCode = finalFormCode;
            entity.PermissionState = (decimal)finalStateCode;

            // Update process result into DB
            _permissionEntityDAO.Update(entity, wrapper.Transaction);

            // Scan ERP if it has more permission waiting for process
            // TODO: confirmed with Long
            // Usually, after one permission is confirmed by ERP, we need query
            // ERP DB again to get the new permission.
            // Now, we generate it automatically.
            UpdateNextPermission(entity, wrapper.Transaction);
        }