Example #1
0
        private static string getSegmentValue(int Value, int SegmentLength, SegmentTypeEnum SegmentType)
        {
            const char paddingChar    = '0';
            int        _base          = (int)SegmentType;
            string     convertedValue = ToBase(_base, Value).PadLeft(SegmentLength, paddingChar);

            return(convertedValue);
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="SegmentCount"></param>
        /// <param name="SegmentLength"></param>
        /// <param name="SegmentType"></param>
        /// <param name="MaxSegmentCount"></param>
        /// <returns></returns>
        private static bool checkSegmentCount(int SegmentCount, int SegmentLength, out SegmentTypeEnum SegmentType, out double MaxSegmentCount, out string SegmentPattern)
        {
            double numericSegmentLimit      = 0;
            double alphanumericSegmentLimit = 0;

            numericSegmentLimit      = getSegmentLimit(SegmentTypeEnum.Numeric, SegmentLength);
            alphanumericSegmentLimit = getSegmentLimit(SegmentTypeEnum.Alphanumeric, SegmentLength);
            MaxSegmentCount          = alphanumericSegmentLimit;

            bool isValidSegmentCount = false;

            if (SegmentCount == 0)
            {
                isValidSegmentCount = true;
                SegmentType         = SegmentTypeEnum.Closed;
                MaxSegmentCount     = 0;
                SegmentPattern      = "0";
            }
            else if (SegmentCount <= numericSegmentLimit)
            {
                isValidSegmentCount = true;
                SegmentType         = SegmentTypeEnum.Numeric;
                SegmentPattern      = string.Empty.PadLeft(SegmentLength, '#');
            }
            else if (SegmentCount <= alphanumericSegmentLimit)
            {
                isValidSegmentCount = true;
                SegmentType         = SegmentTypeEnum.Alphanumeric;
                SegmentPattern      = string.Empty.PadLeft(SegmentLength, '$');
            }
            else
            {
                isValidSegmentCount = false;
                SegmentType         = SegmentTypeEnum.Overflow;
                SegmentPattern      = "0";
            }

            return(isValidSegmentCount);
        }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="SegmentType"></param>
        /// <param name="SegmentLength"></param>
        /// <returns></returns>
        private static double getSegmentLimit(SegmentTypeEnum SegmentType, int SegmentLength)
        {
            double resultLimit = 0;

            switch (SegmentType)
            {
            case SegmentTypeEnum.Numeric:
                resultLimit = getNumericLimit(SegmentLength);
                break;

            case SegmentTypeEnum.Alphanumeric:
                resultLimit = getAlphanumericLimit(SegmentLength);
                break;

            case SegmentTypeEnum.Closed:
            case SegmentTypeEnum.Overflow:
            default:
                resultLimit = 0;
                break;
            }

            return(resultLimit);
        }