Ejemplo n.º 1
0
        public static IFolderRanges CreateIntFolderRangeIterator(TreeNode ownerTreeNode, List<Tuple<string, string>> ranges, bool includeWildCard)
        {
            IntFolderRanges folderRanges = new IntFolderRanges();

            int counter = 0;
            int? lastMaxValue = null;
            foreach (Tuple<string, string> range in ranges)
            {
                int minValue = 0;
                int maxValue = 0;
                bool isMinOpenEnded = range.Item1 == "";
                bool isMaxOpenEnded = range.Item2 == "";

                if ((range.Item1 != "") && (int.TryParse(range.Item1, out minValue) == false))
                {
                    ownerTreeNode.AddValidationError("TreeValidationError.Range.WrongFormat");
                    return null;
                }

                if ((range.Item2 != "") && (int.TryParse(range.Item2, out maxValue) == false))
                {
                    ownerTreeNode.AddValidationError("TreeValidationError.Range.WrongFormat");
                    return null;
                }

                if ((isMinOpenEnded == false) && (isMaxOpenEnded == false) && (minValue >= maxValue))
                {
                    ownerTreeNode.AddValidationError("TreeValidationError.Range.MinMaxError", minValue, maxValue);                    
                    return null;
                }
                
                if (lastMaxValue.HasValue == false)
                {
                    lastMaxValue = maxValue;
                }
                else if (lastMaxValue.Value >= minValue)
                {
                    ownerTreeNode.AddValidationError("TreeValidationError.Range.NextRangeError");
                }


                IntFolderRange folderRange = new IntFolderRange(
                    counter++,
                    minValue,
                    maxValue,
                    isMinOpenEnded,
                    isMaxOpenEnded
                );

                folderRanges.AddFolderRange(folderRange);
            }

            if (includeWildCard)
            {
                IntFolderRange folderRange = new IntFolderRange(
                    -1,
                    0,
                    0,
                    false,
                    false
                );

                folderRanges.AddFolderRange(folderRange);
            }            

            return folderRanges;
        }
        public static IFolderRanges CreateIntFolderRangeIterator(TreeNode ownerTreeNode, List <Tuple <string, string> > ranges, bool includeWildCard)
        {
            IntFolderRanges folderRanges = new IntFolderRanges();

            int counter      = 0;
            int?lastMaxValue = null;

            foreach (Tuple <string, string> range in ranges)
            {
                int  minValue       = 0;
                int  maxValue       = 0;
                bool isMinOpenEnded = range.Item1 == "";
                bool isMaxOpenEnded = range.Item2 == "";

                if ((range.Item1 != "") && (int.TryParse(range.Item1, out minValue) == false))
                {
                    ownerTreeNode.AddValidationError("TreeValidationError.Range.WrongFormat");
                    return(null);
                }

                if ((range.Item2 != "") && (int.TryParse(range.Item2, out maxValue) == false))
                {
                    ownerTreeNode.AddValidationError("TreeValidationError.Range.WrongFormat");
                    return(null);
                }

                if ((isMinOpenEnded == false) && (isMaxOpenEnded == false) && (minValue >= maxValue))
                {
                    ownerTreeNode.AddValidationError("TreeValidationError.Range.MinMaxError", minValue, maxValue);
                    return(null);
                }

                if (lastMaxValue.HasValue == false)
                {
                    lastMaxValue = maxValue;
                }
                else if (lastMaxValue.Value >= minValue)
                {
                    ownerTreeNode.AddValidationError("TreeValidationError.Range.NextRangeError");
                }


                IntFolderRange folderRange = new IntFolderRange(
                    counter++,
                    minValue,
                    maxValue,
                    isMinOpenEnded,
                    isMaxOpenEnded
                    );

                folderRanges.AddFolderRange(folderRange);
            }

            if (includeWildCard)
            {
                IntFolderRange folderRange = new IntFolderRange(
                    -1,
                    0,
                    0,
                    false,
                    false
                    );

                folderRanges.AddFolderRange(folderRange);
            }

            return(folderRanges);
        }