Пример #1
0
        private static string MetaTagReplacer(string inString, DateTime inDate, MetatagMode metaTagMode)
        {
            string outString = inString;
            int recursiveLimit = 3;

        	switch (metaTagMode)
            {
                case MetatagMode.Runtime:

                    while (outString.Contains("*") && recursiveLimit-- > 0)
                    {
						foreach (KeyValuePair<string, string> metatag in runtimeMetatagsDictionary)
						{
							if (outString.Contains(metatag.Key))
							{
								outString = outString.Replace(metatag.Key, metatag.Value );
								log.DebugFormat("Config file Metatag replacer:  {0} --> {1}", inString, outString);
							}
						}
					}

                    recursiveLimit = 3;  //reset
                    while (outString.Contains("*") && recursiveLimit-- > 0)
                    {
                        foreach (string s in ConfigUtils.GlobalConfig.Hierarchy.LevelNames(@"appgroup\METATAGS\Runtime"))
                        {
                            if (outString.Contains(s))
                            {
                                outString = outString.Replace(s, MetaTagReplacer(s, inDate));
                                log.DebugFormat("Metatag replacer:  {0} --> {1}", inString, outString);
                            }
                        }
						if (outString.Contains("*"))
						{
							outString = MetaTagReplacer(outString, inDate);
							log.Error(string.Format("Last Resort Metatag replacer:  {0} --> {1}", inString, outString));
						}
                    }

                    break;

                case MetatagMode.Environment:

                    while (outString.Contains("*") && recursiveLimit-- > 0)
                    {
						foreach (KeyValuePair<string, string> metatag in environmentMetatagsDictionary)
						{
							if (outString.Contains(metatag.Key))
							{
								outString = outString.Replace(metatag.Key, metatag.Value);
								log.DebugFormat("Config file Metatag replacer:  {0} --> {1}", inString, outString);
							}
						}
                    }

                    recursiveLimit = 3;  //reset
                    while (outString.Contains("*") && recursiveLimit-- > 0)
                    {
                        foreach (string s in ConfigUtils.GlobalConfig.Hierarchy.LevelNames(@"appgroup\METATAGS\Environment"))
                            if (outString.Contains(s))
                            {
                                outString = outString.Replace(s, GetMetatagValue(s));
                                log.DebugFormat("Metatag replacer:  {0} --> {1}", inString, outString);
                            }
                    }

                    break;

                default:
                    break;
            }
            return outString;
        }
Пример #2
0
 public static string MetaTagReplacer(string inString, MetatagMode metaTagMode)
 {
    return MetaTagReplacer(inString, DateTime.MinValue, metaTagMode);
 }