protected override object FindParameterValue(Match match, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func<string, string> recurse) { var templateNameGroup = match.Groups["templateName"]; if (templateNameGroup == null) return ""; var templateName = templateNameGroup.Value; var template = _templateStorage.Load(templateName, theme); if (template == null) return ""; var settings = new Dictionary<string, object>(); var settingsGroup = match.Groups["settings"]; if (settingsGroup != null && !string.IsNullOrEmpty(settingsGroup.Value)) { var settingsJson = settingsGroup.Value; if (!string.IsNullOrEmpty(settingsJson)) { var parsedSettings = JsonConvert.DeserializeObject<IDictionary<string, object>>(settingsJson); foreach (var item in parsedSettings) settings[item.Key] = item.Value; } } var renderResult = cmsRenderer.RenderTemplate(template, settings, context, theme); return renderResult.Read(); }
protected override object FindParameterValue(Match match, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func<string, string> recurse) { var componentNameGroup = match.Groups["componentName"]; if (componentNameGroup == null) return ""; var componentName = componentNameGroup.Value; var component = context.Filter(_components.Where(x => x.GetType().Name == componentName), theme).FirstOrDefault(); if (component == null) return ""; var settings = component.GetDefaultSettings(); var settingsGroup = match.Groups["settings"]; if (!string.IsNullOrEmpty(settingsGroup?.Value)) { var settingsJson = settingsGroup.Value; if (!string.IsNullOrEmpty(settingsJson)) { var parsedSettings = JsonConvert.DeserializeObject<IDictionary<string, object>>(settingsJson); foreach (var item in parsedSettings) settings[item.Key] = item.Value; } } var renderResult = cmsRenderer.RenderComponent(component, settings, context, theme); return recurse(renderResult.Read()); }
protected override object FindParameterValue(Match match, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func<string, string> recurse) { var contextNameGroup = match.Groups["contextName"]; if (contextNameGroup == null || string.IsNullOrEmpty(contextNameGroup.Value)) return ""; var path = match.Groups["contextName"].Value; var parts = path.Split('.'); var contextName = parts.FirstOrDefault(); var requestContext = context.FindContext(contextName); if (requestContext == null) return null; var settingsName = parts.Skip(1).FirstOrDefault(); if (!requestContext.Data.ContainsKey(settingsName)) return null; var value = _findParameterValueFromModel.Find(path.Substring(string.Format("{0}.{1}.", contextName, settingsName).Length), requestContext.Data[settingsName]); var stringValue = value as string; return stringValue != null ? recurse(stringValue) : value; }
protected override object FindParameterValue(Match match, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func<string, string> recurse) { var localizationNamespace = _findCurrentLocalizationNamespace.Find(); var key = !string.IsNullOrEmpty(localizationNamespace) ? string.Format("{0}:{1}", localizationNamespace, match.Groups["resource"].Value) : match.Groups["resource"].Value; var replacements = new Dictionary<string, string>(); var replacementsGroup = match.Groups["replacements"]; if (replacementsGroup != null && !string.IsNullOrEmpty(replacementsGroup.Value)) { var replacementsData = replacementsGroup .Value .Split(',') .Where(x => !string.IsNullOrEmpty(x)) .Select(x => x.Split(':')) .Where(x => x.Length > 1 && !string.IsNullOrEmpty(x[0]) && !string.IsNullOrEmpty(x[1])) .ToList(); foreach (var item in replacementsData) replacements[item[0]] = item[1]; } var localized = _localizeText.Localize(key, _findCultureForRequest.FindUiCulture()); localized = replacements.Aggregate(localized, (current, replacement) => current.Replace(string.Concat("{{", replacement.Key, "}}"), replacement.Value)); return recurse(localized); }
public string Parse(string text, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func<string, string> recurse) { var hash = CalculateHash(text); var template = ParsedTemplates.Get(hash, x => Template.Parse(text)); var contexts = context .FindCurrentContexts() .ToDictionary(x => x.Name, x => (object)x.Data); return template.Render(Hash.FromDictionary(contexts)); }
protected override object FindParameterValue(Match match, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func<string, string> recurse) { var markdownParser = new Markdown(new MarkdownOptions { AutoNewLines = true }); var mardown = match.Groups[1].Value; if (string.IsNullOrEmpty(mardown)) return mardown; return markdownParser.Transform(mardown); }
public string Parse(string text, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func<string, string> recurse) { text = text ?? ""; text = GetRegexes().Aggregate(text, (current, regex) => regex.Replace(current, x => { var value = FindParameterValue(x, cmsRenderer, context, theme, recurse); if (value == null) return ""; var enumerableValue = value as IEnumerable; if (enumerableValue != null && !(value is string)) { var stringValues = enumerableValue.OfType<object>().Select(y => y.ToString()).ToList(); return string.Join(SeperateListItemsWith, stringValues); } return value.ToString(); })); return text; }
protected abstract object FindParameterValue(Match match, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func<string, string> recurse);
public CmsEndpointWriter(IOutputWriter writer, ICmsRenderer cmsRenderer, ICmsContext cmsContext) { _writer = writer; _cmsRenderer = cmsRenderer; _cmsContext = cmsContext; }
public RenderTemplateRenderInformation(ICmsRenderer cmsRenderer) { _cmsRenderer = cmsRenderer; }
public Renderer(ICmsRenderer <TRenderInformation> renderer) { _renderer = renderer; }
protected abstract object FindParameterValue(Match match, ICmsRenderer cmsRenderer, ICmsContext context, ITheme theme, Func <string, string> recurse);
public RenderTextRenderInformation(ICmsRenderer cmsRenderer) { _cmsRenderer = cmsRenderer; }