Пример #1
0
        public string NextVal()
        {
            const string YEAR4D_MM  = "{YYYYMM}";
            const string YEAR4D     = "{YYYY}";
            const string YEAR2D     = "{YY}";
            const string YEAR2D_MM  = "{YYMM}";
            const string YEAR4D_MMM = "{YYYYMMM}";

            string[] simpleList = new string[] { YEAR2D, YEAR2D_MM, YEAR4D, YEAR4D, YEAR4D_MM };
            CurrentValue += 1;
            string currVal = CurrentValue.ToString().PadLeft(SequenceId.SequLength, '0');

            Save();
            string value = SequenceId.SequMask.Replace("{$}", currVal);

            if (value.Contains(YEAR4D_MMM))
            {
                int    monVal   = int.Parse(SequenceKey.Substring(4, 2));
                string monName  = new DateTime(2010, monVal, 1).ToString("MMM", CultureInfo.InvariantCulture);
                string yearPart = SequenceKey.Substring(0, 4) + monName;

                value = value.Replace(YEAR4D_MMM, yearPart);
            }
            else
            {
                foreach (var item in simpleList)
                {
                    if (value.Contains(item) && SequenceKey.Length > (item.Length - 2))
                    {
                        value = value.Replace(item, SequenceKey.Substring(0, item.Length));
                        break;
                    }
                }
            }

            return(value);
        }