Carrotware.CMS.Core.SiteData.ParsePlaceholder C# (CSharp) Метод

ParsePlaceholder() приватный статический Метод

private static ParsePlaceholder ( string titleString, string placeHolder, int posNum ) : string>.KeyValuePair
titleString string
placeHolder string
posNum int
Результат string>.KeyValuePair
        private static KeyValuePair<string, string> ParsePlaceholder(string titleString, string placeHolder, int posNum)
        {
            KeyValuePair<string, string> pair = new KeyValuePair<string, string>(String.Empty, String.Empty);

            string[] frags = placeHolder.Split(':');
            string frag0 = frags[0];
            string frag1 = frags[1];

            string formatPattern = String.Format("{{{0}}}", posNum);

            if (titleString.Contains(frag0)) {
                int idx1 = titleString.IndexOf(frag0);
                int idx2 = titleString.IndexOf("]]", idx1 + 4);
                int len = idx2 - idx1 - frag0.Length - 1;

                if (idx1 > 0 && idx2 > 0) {
                    string format = "d";
                    if (len > 0) {
                        format = titleString.Substring(idx1 + frag0.Length + 1, len);
                    }
                    placeHolder = placeHolder.Replace("*", format);

                    formatPattern = String.Format("{{{0}:{1}}}", posNum, format);
                    pair = new KeyValuePair<string, string>(placeHolder, formatPattern);
                }
            }

            return pair;
        }