Example #1
0
        public FutureCode(string futureCode, int yearBeforeWhich2DigitDatesAreUsed, IFutureSettingsProvider futureSettings)
        {
            OriginalCode = futureCode;
            YearBeforeWhich2DigitDatesAreUsed = yearBeforeWhich2DigitDatesAreUsed;
            _futureSettingsProvider           = futureSettings;

            //Find the last number
            var i = 0;
            int tempNumber;

            for (i = futureCode.Length; i >= 0; i--)
            {
                if (int.TryParse(futureCode[i - 1].ToString(), out tempNumber))
                {
                    break;
                }
            }

            //Now we have the index we can hack the end off
            Postfix    = futureCode.Substring(i);
            futureCode = futureCode.Substring(0, i);

            //Find when the numbers end

            for (i = futureCode.Length; i >= 0; i--)
            {
                if (!int.TryParse(futureCode[i - 1].ToString(), out tempNumber))
                {
                    break;
                }
            }

            YearCode        = futureCode.Substring(i);
            YearNumber      = int.Parse(YearCode);
            YearNumberShort = YearNumber;

            futureCode = futureCode.Substring(0, i);

            MonthCode = futureCode[futureCode.Length - 1].ToString();
            Prefix    = futureCode.Substring(0, futureCode.Length - 1);

            if (!futureSettings.TryGet(Prefix, out _settings))
            {
                ContractCode = Prefix.ToUpper().Trim();
                _settings    = futureSettings[ContractCode];
            }

            MonthNumber12 = s_futureMonths.ToList().IndexOf(MonthCode) + 1;
            MonthNumber   = _settings.Months.IndexOf(MonthCode) + 1;
            ConvertYearCode();
        }
Example #2
0
 public FutureCode(string futureCodeRoot, IFutureSettingsProvider futureSettings)
 {
     _settings = futureSettings[futureCodeRoot];
     _futureSettingsProvider = futureSettings;
     Prefix = futureCodeRoot;
 }