/// <summary> /// initialize the start position with current position from DataView. /// </summary> private void initStartPosition() { IRecord record = DataviewSynchronizer.GetCurrentRecord(); DbPos outPos; DataviewSynchronizer.DataviewManager.PositionCache.TryGetValue(new PositionId(record.getId()), out outPos); startPosition = outPos; }
/// <summary> /// /// </summary> /// <returns></returns> internal override ReturnResultBase Execute() { IRecord record = DataviewSynchronizer.GetCurrentRecord(); GatewayResult result = TaskViews.GetPrimaryView().FetchCurrent(record); if (result.Success) { TaskViews.RecordComputer.Compute(record, false, false, false); } return(result); }
internal override ReturnResultBase Execute() { bool isEmptyDataView = ((DataView)(Task.DataView)).isEmptyDataview(); DataviewSynchronizer.SetupDataview(Reverse); IRecord origRecord = DataviewSynchronizer.GetCurrentRecord(); TaskViews.ViewMain.IgnorePositionCache = true; GatewayResult result = TaskViews.OpenCursors(Reverse, new DbPos(true)); if (result.Success) { IRecord record; while ((record = GetBasicRecord()) != null) { if (RecordComputer.Compute(record, true, false, false).Success) { //execute event OnRecordFetchEvent onRecordFetch((Record)record); DataviewSynchronizer.RemoveRecord(record); } } } TaskViews.CloseMainCursor(); TaskViews.ViewMain.IgnorePositionCache = false; if (origRecord != null) { DataviewSynchronizer.SetCurrentRecord(origRecord != null ? origRecord.getId() : Int32.MinValue); ((DataView)(Task.DataView)).takeFldValsFromCurrRec(); } ((DataView)(Task.DataView)).setEmptyDataview(isEmptyDataView); return(result); }
/// <summary> /// find the start record and get its position /// </summary> /// <returns></returns> internal override ReturnResultBase Execute() { IRecord origRecord = DataviewSynchronizer.GetCurrentRecord(); bool recordFound = FindMatchingRecord(); if (recordFound) { // found a record - keep its position IRecord currentRecord = DataviewSynchronizer.GetCurrentRecord(); DbPos outPos; PositionCache.TryGetValue(new PositionId(currentRecord.getId()), out outPos); ResultStartPosition = outPos; LocalDataviewManager.Reset(); DataviewSynchronizer.RemoveRecord(currentRecord); } else { DataviewSynchronizer.SetCurrentRecord(origRecord != null ? origRecord.getId() : Int32.MinValue); } return(new GatewayResult()); }
/// <summary> /// /// </summary> /// <returns></returns> internal override ReturnResultBase Execute() { if (Field.IsVirtual) { return(new ReturnResult()); } // check the conditions which will allow the update if (Field.IsLinkField) { LinkView linkView = TaskViews.LinkViews[Field.getDataviewHeaderId()]; IRecord record = DataviewSynchronizer.GetCurrentRecord(); if ((linkView.DataviewHeader.Mode == LnkMode.Write && linkView.GetPosition(record) == null) || linkView.DataviewHeader.Mode == LnkMode.Create) { return(new ReturnResult()); } } // update not allowed - return the error return(new ReturnResult(MsgInterface.RT_STR_NON_MODIFIABLE)); }