Пример #1
0
        /// <summary>
        /// compute range and locate data
        /// </summary>
        /// <returns></returns>
        internal List <RangeData> ComputeBoundariesData(BoudariesFlags cursorPositionFlag)
        {
            List <RangeData> rangesList = new List <RangeData>();

            foreach (var item in runtimeBoundaries)
            {
                if ((cursorPositionFlag & BoudariesFlags.Range) != 0)
                {
                    if (item.Range != null)
                    {
                        rangesList.Add(item.ComputeRangeData());
                    }
                }

                if ((cursorPositionFlag & BoudariesFlags.Locate) != 0)
                {
                    if (item.Locate != null)
                    {
                        rangesList.Add(item.ComputeLocateData());
                    }
                }
            }
            SetPartDatetimeMatch(rangesList);
            return(rangesList);
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public List <RangeData> Build(BoudariesFlags boundariesFlag)
        {
            List <RangeData> rangesData = new List <RangeData>();

            // If toolkit locates and runtime locates are present, then use user locates and not use toolkit locates.
            if (userLocates == null || userLocates.Count == 0)
            {
                rangesData = viewBoundaries.ComputeBoundariesData(boundariesFlag);
            }
            else
            {
                rangesData = viewBoundaries.ComputeBoundariesData(BoudariesFlags.Range);
            }

            if ((boundariesFlag & BoudariesFlags.Range) != 0 && userRanges != null)
            {
                rangesData.AddRange(userRanges);
            }

            if ((boundariesFlag & BoudariesFlags.Locate) != 0 && userLocates != null)
            {
                rangesData.AddRange(userLocates);
            }

            return(rangesData);
        }
Пример #3
0
 /// <summary>
 /// get the required start position, for use when there's a "locate" command
 /// </summary>
 /// <param name="reverse"></param>
 /// <returns></returns>
 internal DbPos SetCursorOnPosition(bool reverse, DbPos position, BoudariesFlags cursorPositionFlag)
 {
     OpenCursor(reverse, position, cursorPositionFlag);
     CursorFetch();
     CloseCursor();
     return(CurrentCursor.CursorDefinition.CurrentPosition);
 }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public List <RangeData> Build(BoudariesFlags boundariesFlag)
        {
            List <RangeData> rangesData = viewBoundaries.ComputeBoundariesData(BoudariesFlags.Range);

            rangesData.Add(BuildRangeData(minValue));

            return(rangesData);
        }
Пример #5
0
        public List <gatewaytypes.RangeData> Build(BoudariesFlags boundariesFlag)
        {
            var rangeData = new List <gatewaytypes.RangeData>();

            foreach (var fb in fieldBoundaries)
            {
                rangeData.Add(fb.ComputeRangeData());
            }
            return(rangeData);
        }
Пример #6
0
        /// <summary>
        /// open cursor
        /// </summary>
        /// <param name="reverse"></param>
        /// <param name="startPosition"></param>
        /// <param name="useLocate">If this is the 1st access to the table, locate values should be considered.
        /// if not - use only ranges</param>
        /// <returns></returns>
        internal GatewayResult OpenCursor(bool reverse, DbPos startPosition, BoudariesFlags boundariesFlag)
        {
            CurrentCursor.CursorDefinition.SetFlagValue(CursorProperties.DirReversed, reverse);
            CurrentCursor.CursorDefinition.StartPosition = startPosition;

            // build the RangeData list
            CurrentCursor.RuntimeCursorData.Ranges = RangeBuilder.Build(boundariesFlag);

            GatewayCommandBase cursorCommand = GatewayCommandsFactory.CreateCursorOpenCommand(CurrentCursor, LocalDataviewManager.LocalManager);

            //String r = CurrentCursor.Serialize();

            return(cursorCommand.Execute());
        }