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; }
public static string MetaTagReplacer(string inString, MetatagMode metaTagMode) { return MetaTagReplacer(inString, DateTime.MinValue, metaTagMode); }