RadaCode.InDoc.Data.DocumentNaming.NamingApproach.GetNextName C# (CSharp) Method

GetNextName() public method

public GetNextName ( ) : string
return string
        public string GetNextName()
        {
            var res = Format;

            var moreToParse = false;
            var codeIndex = 0;

            do
            {
                var braceStart = res.IndexOf("{");
                var braceEnd = res.IndexOf("}", braceStart);

                var specialAreaContents = res.Substring(braceStart, braceEnd - braceStart + 1);

                var processor = SpecialNamingsFactory.GetNamingProcessor(this, specialAreaContents);
                processor.ProcessGetNextForNaming(ref res, braceStart, braceEnd, codeIndex);
                codeIndex++;

                moreToParse = res.IndexOf("{") != -1;

            } while (moreToParse);

            UpdateTime = DateTime.UtcNow;
            return res;
        }

Usage Example

        public void CreateSetParamsGetNameParams()
        {
            const string format = "{intInc_G}/{intInc_D}/02-{yy}";
            const string typeName = "Orders";

            var initParams = new List<KeyValuePair<int, string>> { new KeyValuePair<int, string>(0, "2296"), new KeyValuePair<int, string>(1, "1") };

            var orderNamingApproach = new NamingApproach { Format = format, TypeName = typeName };
            orderNamingApproach.SaveCurrentParams(initParams);

            var newName = orderNamingApproach.GetNextName();
            Assert.AreEqual("2297/2/02-12", newName);
        }