private static void RunPattern(IYateDataContext dataContext, object model, CQ domObjects, IPattern pattern) { //try/finally leaves the data context in the same state as when we started with it hopefully. try { dataContext.PushValue(model); foreach (var domObject in domObjects) { var htmlFragment = CQ.CreateFragment(pattern.HtmlFragment); foreach (var atRule in pattern.AtRules) { atRule.Render(htmlFragment, dataContext); } foreach (var ruleSet in pattern.RuleSets) { ruleSet.Render(htmlFragment, dataContext); } //append those mama jammas foreach(var frag in htmlFragment) { domObject.AppendChild(frag); } } } finally { dataContext.PopValue(); } }
public string Render(IYateDataContext dataContext) { using (var stringWriter = new StringWriter()) { WriteToTextWriter(stringWriter, dataContext); return stringWriter.ToString(); } }
public object GetValue(IYateDataContext dataContext) { if ((bool)_conditioinValue.GetValue(dataContext)) { return _trueConditionValue.GetValue(dataContext); } return _falseConditionValue.GetValue(dataContext); }
public virtual void Render(CQ html, IYateDataContext dataContext) { foreach (var declaration in Properties) { foreach (var selector in Selectors) { declaration.Render(html, selector, dataContext); } } }
public void Render(CQ html, IYateDataContext dataContext) { foreach (var atRule in AtRules) { atRule.Render(html, dataContext); } foreach (var ruleSet in RuleSets) { ruleSet.Render(html, dataContext); } }
public void Render(CQ html, IYateDataContext dataContext) { var selector = _selector.GetValue(dataContext).ToString(); var patterns = html.Select(selector); var patternHtml = CQ.CreateFragment(patterns.First()); dataContext.PatternContainer.Add( _name.GetValue(dataContext).ToString(), new YatePattern(patternHtml, AtRules, RuleSets)); html.Select(selector).Remove(); }
public void Render(CQ html, IYateDataContext dataContext) { if ((bool)_conditionValue.GetValue(dataContext)) { foreach (var atRule in AtRules) { atRule.Render(html, dataContext); } foreach (var ruleSet in RuleSets) { ruleSet.Render(html, dataContext); } } }
public void Render(CQ dom, string selector, IYateDataContext dataContext) { string format; if (_format != null) { format = _format.GetValue(dataContext).ToString(); } else { format = dom.Select(selector).Text(); } dom.Select(selector).Text( string.Format(format, _text.GetValue(dataContext))); }
public void WriteToTextWriter(TextWriter textWriter, IYateDataContext dataContext) { //this is done so i can run the parsed view with multiple contexts back to back //without the first one corrupting the second one. var html = CQ.Create(Html); foreach (var atRule in AtRules) { atRule.Render(html, dataContext); } foreach (var ruleSet in RuleSets) { ruleSet.Render(html, dataContext); } html.Render(OutputFormatters.Default, textWriter); }
public void Render(CQ html, string selector, IYateDataContext dataContext) { var domObjects = html.Select(selector); var pattern = dataContext.PatternContainer[_patternName.GetValue(dataContext).ToString()]; var model = _model.GetValue(dataContext); if (model is ICollection) { var enumModels = model as ICollection; foreach (var enumModel in enumModels) { RunPattern(dataContext, enumModel, domObjects, pattern); } } else { RunPattern(dataContext, model, domObjects, pattern); } }
public object GetValue(IYateDataContext dataContext) { return _value; }
public object GetValue(IYateDataContext dataContext) { return dataContext.GetValue(_pathValue.GetValue(dataContext).ToString()); }
public abstract void Render(CQ html, string selector, IYateDataContext dataContext);
public override void Render(CQ dom, string selector, IYateDataContext dataContext) { //todo:figure out append, prepend, etc dom.Select(selector).Text(Values[0].GetValue(dataContext).ToString()); }
public void Render(CQ dom, string selector, IYateDataContext dataContext) { //todo:figure out append, prepend, etc dom.Select(selector).Attr(_attributeName.GetValue(dataContext).ToString(), _attributeValue.GetValue(dataContext).ToString()); }
public void Render(CQ dom, string selector, IYateDataContext dataContext) { //todo:figure out append, prepend, etc dom.Select(selector).Html(_htmlValue.GetValue(dataContext).ToString()); }