System.ComponentModel.MaskedTextProvider.FindEditPositionInRange C# (CSharp) Method

FindEditPositionInRange() private method

Gets the position of the first edit char in the test string in the specified range, according to the assignedRequired parameter; if true, it gets the first assigned position otherwise the first unassigned one. The search starts from the specified position included. Returns InvalidIndex if it doesn't find one.
private FindEditPositionInRange ( int startPosition, int endPosition, bool direction, byte assignedStatus ) : int
startPosition int
endPosition int
direction bool
assignedStatus byte
return int
        private int FindEditPositionInRange(int startPosition, int endPosition, bool direction, byte assignedStatus)
        {
            // out of range position is handled in FindEditPositionFrom method.
            int testPosition;

            do
            {
                testPosition = FindEditPositionInRange(startPosition, endPosition, direction);

                if (testPosition == invalidIndex)  // didn't find any.
                {
                    break;
                }

                CharDescriptor chDex = _stringDescriptor[testPosition];

                switch (assignedStatus)
                {
                    case editUnassigned:
                        if (!chDex.IsAssigned)
                        {
                            return testPosition;
                        }
                        break;

                    case editAssigned:
                        if (chDex.IsAssigned)
                        {
                            return testPosition;
                        }
                        break;

                    default: // don't care
                        return testPosition;
                }

                if (direction == forward)
                {
                    startPosition++;
                }
                else
                {
                    endPosition--;
                }
            }
            while (startPosition <= endPosition);

            return invalidIndex;
        }

Same methods

MaskedTextProvider::FindEditPositionInRange ( int startPosition, int endPosition, bool direction ) : int

Usage Example

		public void FindEditPositionInRangeTest1 ()
		{
			MaskedTextProvider mtp;
			int Int32_out = 0;
			MaskedTextResultHint MaskedTextResultHint_out = MaskedTextResultHint.Unknown;
			mtp = new MaskedTextProvider (@"abc");
			mtp.Add (@"a");
			mtp.Add ('\x61');
			mtp.Add ('\x61', out Int32_out, out MaskedTextResultHint_out);
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 0, false), "#0");
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 0, true), "#1");
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 1, false), "#2");
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 1, true), "#3");
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 2, false), "#4");
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 2, true), "#5");
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 3, false), "#6");
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 3, true), "#7");
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 4, false), "#8");
			Assert.AreEqual (0, mtp.FindEditPositionInRange (0, 4, true), "#9");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 0, false), "#10");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 0, true), "#11");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 1, false), "#12");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 1, true), "#13");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 2, false), "#14");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 2, true), "#15");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 3, false), "#16");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 3, true), "#17");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 4, false), "#18");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (1, 4, true), "#19");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 0, false), "#20");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 0, true), "#21");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 1, false), "#22");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 1, true), "#23");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 2, false), "#24");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 2, true), "#25");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 3, false), "#26");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 3, true), "#27");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 4, false), "#28");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (2, 4, true), "#29");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 0, false), "#30");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 0, true), "#31");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 1, false), "#32");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 1, true), "#33");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 2, false), "#34");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 2, true), "#35");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 3, false), "#36");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 3, true), "#37");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 4, false), "#38");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (3, 4, true), "#39");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 0, false), "#40");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 0, true), "#41");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 1, false), "#42");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 1, true), "#43");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 2, false), "#44");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 2, true), "#45");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 3, false), "#46");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 3, true), "#47");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 4, false), "#48");
			Assert.AreEqual (-1, mtp.FindEditPositionInRange (4, 4, true), "#49");
			MaskedTextProviderTest.AssertProperties (mtp, "FindEditPositionInRangeTest", 50, true, false, 1, 0, CultureInfo.GetCultureInfo ("es-ES"), 1, true, false, false, 0, 3, @"abc", true, true, '\x0', '\x5F', true, true, true, @"abc", @"abc", @"abc", @"abc", @"a", @"abc", @"a");
		}