private TPart GetPart <TPart>(EvaluateContext context) where TPart : ContentPart { if (!(context.Data is IContent)) { return(null); } ContentItem contentItem = null; if (context.Data is ContentPart) { ContentPart part = (ContentPart)context.Data["Content"]; contentItem = part.ContentItem; } else if (context.Data is IContent) { contentItem = (ContentItem)context.Data["Content"]; } if (contentItem == null) { return(null); } return(contentItem.As <TPart>()); }
public void Evaluate(EvaluateContext context) { context.For <object>("Site", null) .Token("Global1", o => "[global1]") .Token("Global2", o => "[global2]") .Token("Global3", o => "[global3]") .Token("CurrentUser", o => new TestUser { UserName = "******" }) .Chain("CurrentUser", "User", o => new TestUser { UserName = "******" }); context.For <IUser>("User", () => new TestUser { UserName = "******" }) .Token("Name", u => u.UserName) .Token("Birthdate", u => "Nov 15") .Chain("Birthdate", "DateTime", u => new DateTime(1978, 11, 15)); context.For <object>("Date", null) .Token("Now", o => DateTime.Now.ToShortDateString()) .Chain("Now", "DateTime", o => DateTime.Now); context.For <DateTime>("DateTime") .Token((token, value) => value.ToString(token)); }
public void Evaluate(EvaluateContext context) { context.For <String>("Text", () => "") .Token( // {WrapNotEmpty:<left wrapper>[,<right wrapper>]} token => { if (token.StartsWith("WrapNotEmpty:", StringComparison.OrdinalIgnoreCase)) { return(token.Substring("WrapNotEmpty:".Length)); } return(null); }, (param, token) => { if (String.IsNullOrEmpty(token)) { return(String.Empty); } var index = param.IndexOf(','); // No right wrapper if (index == -1) { token = param + token; } else { token = param.Substring(0, index) + token + param.Substring(index + 1); } return(token); }); }
public void Evaluate(EvaluateContext context) { context.For <String>("Text", () => "") // {Text} .Token( token => token == String.Empty ? String.Empty : null, (token, d) => d.ToString()) // {Text.Limit:<length>[,<ellipsis>]} .Token( token => FilterTokenParam("Limit:", token), (token, t) => Limit(t, token)) // {Text.Format:<formatstring>} .Token( token => FilterTokenParam("Format:", token), (token, d) => String.Format(token, d)) // {Text.TrimEnd:<chars|number>} .Token(token => FilterTokenParam("TrimEnd:", token), TrimEnd) .Token("UrlEncode", HttpUtility.UrlEncode) .Chain("UrlEncode", "Text", HttpUtility.UrlEncode) .Token("HtmlEncode", HttpUtility.HtmlEncode) .Chain("HtmlEncode", "Text", HttpUtility.HtmlEncode) .Token("JavaScriptEncode", HttpUtility.JavaScriptStringEncode) .Chain("JavaScriptEncode", "Text", HttpUtility.JavaScriptStringEncode) .Token("LineEncode", text => text.Replace(System.Environment.NewLine, "<br />")) .Chain("LineEncode", "Text", text => text.Replace(System.Environment.NewLine, "<br />")) ; }
public void Evaluate(EvaluateContext context) { context.For<String>("Text", () => "") // {Text} .Token( token => token == String.Empty ? String.Empty : null, (token, d) => d.ToString()) // {Text.Limit:<length>[,<ellipsis>]} .Token( token => FilterTokenParam("Limit:", token), (token, t) => Limit(t, token)) // {Text.Format:<formatstring>} .Token( token => FilterTokenParam("Format:", token), (token, d) => String.Format(token, d)) // {Text.TrimEnd:<chars|number>} .Token(token => FilterTokenParam("TrimEnd:", token), TrimEnd) .Token("UrlEncode", HttpUtility.UrlEncode) .Chain("UrlEncode", "Text", HttpUtility.UrlEncode) .Token("HtmlEncode", HttpUtility.HtmlEncode) .Chain("HtmlEncode", "Text", HttpUtility.HtmlEncode) .Token("JavaScriptEncode", HttpUtility.JavaScriptStringEncode) .Chain("JavaScriptEncode", "Text", HttpUtility.JavaScriptStringEncode) .Token("LineEncode", text => text.Replace(System.Environment.NewLine, "<br />")) .Chain("LineEncode", "Text", text => text.Replace(System.Environment.NewLine, "<br />")) ; }
public void Evaluate(EvaluateContext context) { context.For <String>("Text", () => "") .Token("StripHtml", i => Regex.Replace(i, "<.*?>", String.Empty)) .Chain("StripHtml", "Text", i => Regex.Replace(i, "<.*?>", String.Empty)) ; }
public void Evaluate(EvaluateContext context) { context.For <IContent>("Content") .Token("DateModified", DateMod) .Chain("DateModified", "Date", DateMod) ; }
public AuthenticationService(EvaluateContext dbContext, ProtectedSessionStorage storage, IToastService toastService, NavigationManager navigation) { _db = dbContext; _storage = storage; _toastService = toastService; _navigation = navigation; }
public void Evaluate(EvaluateContext context) { context.For <IContent>("Content") .Token("OwnerEmail", x => GetTheValue(x)) .Token("Ownership", x => "Ownership") // Ownership is just a placeholder string to Chain the Content .Chain("Ownership", "Content", x => GetTheContentOwnerOrUser(x)); // Chain the User or the Owner ContentItem }
public void Evaluate(EvaluateContext context) { //((dynamic)context.Data["Content"]).CommonPart.Creator.Value context.For <ColorPickerField>("ColorPickerField") .Token("Color", field => field.Value ?? "") .Chain("Color", "Text", field => field.Value ?? ""); }
public void Evaluate(EvaluateContext context) { var evaluate = context.For <EntityDefinitionPart>("EntityDefinitions", GetCurrentPart(context)); EvaluateCurrentTokens(evaluate); EvaluateAutoTokens(evaluate); }
/// <summary> /// This method has only been used for const char* so far. /// If required to work with other string-like types, please test it and /// expand this method to support those types. /// </summary> /// <param name="frameInspector"></param> /// <param name="expression"></param> /// <param name="context"></param> /// <param name="expectedValue"></param> public static void AssertEvaluateAsString( this IFrameInspector frameInspector, string expression, EvaluateContext context, string expectedValue) { if (expectedValue == null) { AssertEvaluateAsNull(frameInspector, expression, context); return; } for (int i = 0; i <= expectedValue.Length; i++) { string actualValue = frameInspector.Evaluate( string.Format(CultureInfo.InvariantCulture, "{0}[{1}]", expression, i), context); char expectedChar;; if (i == expectedValue.Length) { expectedChar = '\0'; } else { expectedChar = expectedValue[i]; } AssertCharValue(frameInspector.DebuggerRunner.DebuggerSettings, actualValue, expectedChar); } }
private void SubstituteEmailProperties(EvaluateContext context) { var part = this.GetPart <IMAPEmailPart>(context); if (part == null) { return; } context.For(ActivityTokenProvider.EEmailKey, () => this.GetPart <IMAPEmailPart>(context)) .Token("Subject", contextParameter => { return(part.Subject); }) .Token("Body", contextParameter => { string returnValue = part.MailMessage != null ? part.MailMessage.Body : string.Empty; returnValue = part.MailMessage.IsBodyHtml ? returnValue : string.Format("<pre>{0}</pre>", returnValue); return(returnValue); }) .Token("From", contextParameter => { return(part.From); }) .Token("UserId", contextParameter => { dynamic sender = JsonConvert.DeserializeObject(part.From); return(sender.UserId); }) .Token("UserName", contextParameter => { dynamic sender = JsonConvert.DeserializeObject(part.From); return(sender.UserName); }); }
protected static TPart GetCurrentPart(EvaluateContext context) { IContent current = context.Data["Content"] as IContent; TPart currentPart = current == null ? default(TPart) : current.As <TPart>(); return(currentPart); }
public void Evaluate(EvaluateContext context) { context.For <String>("Text", () => "") // {Text} .Token( token => token == String.Empty ? String.Empty : null, (token, d) => d) // {Text.Limit:<length>[,<ellipsis>]} .Token( token => FilterTokenParam("Limit:", token), (token, t) => Limit(t, token)) .Chain(FilterChainLimitParam, "Text", (token, t) => Limit(t, token)) // {Text.Format:<formatstring>} .Token( token => FilterTokenParam("Format:", token), (token, d) => String.Format(token, d)) .Chain(FilterChainFormatParam, "Text", (token, d) => String.Format(token, d)) // {Text.TrimEnd:<chars|number>} .Token(token => FilterTokenParam("TrimEnd:", token), TrimEnd) .Chain(FilterChainTrimEndParam, "Text", TrimEnd) // {Text.TrimStart:<chars|number>} .Token(token => FilterTokenParam("TrimStart:", token), TrimStart) .Chain(FilterChainTrimStartParam, "Text", TrimStart) .Token("UrlEncode", HttpUtility.UrlEncode) .Chain("UrlEncode", "Text", HttpUtility.UrlEncode) .Token("HtmlEncode", HttpUtility.HtmlEncode) .Chain("HtmlEncode", "Text", HttpUtility.HtmlEncode) .Token("JavaScriptEncode", HttpUtility.JavaScriptStringEncode) .Chain("JavaScriptEncode", "Text", HttpUtility.JavaScriptStringEncode) .Token("LineEncode", text => ReplaceNewLineCharacters(text)) .Chain("LineEncode", "Text", text => ReplaceNewLineCharacters(text)) ; }
public void Evaluate(EvaluateContext context) { context.For <object>("Site", null) .Token("Global1", o => "[global1]") .Token("Global2", o => "[global2]") .Token("Global3", o => "[global3]") .Token("CurrentUser", o => new TestUser { UserName = "******" }) .Chain("CurrentUser", "User", o => new TestUser { UserName = "******" }); context.For <IUser>("User", () => new TestUser { UserName = "******" }) .Token("Name", u => u.UserName) .Token("Email", u => u.Email) .Token("Birthdate", u => "Nov 15") .Chain("Birthdate", "DateTime", u => new DateTime(1978, 11, 15)); context.For <object>("Date", null) .Token("Now", o => DateTime.Now.ToShortDateString()) .Chain("Now", "DateTime", o => DateTime.Now); context.For <DateTime>("DateTime") .Token((token, value) => value.ToString(token)); context.For <TestUser[]>("Users", () => new TestUser[] { new TestUser { UserName = "******", Email = "*****@*****.**" }, new TestUser { UserName = "******", Email = "*****@*****.**" }, new TestUser { UserName = "******", Email = "*****@*****.**" } }) .Token( (token) => token.StartsWith("User:"******"User:"******"User:"******"User:"******"User", (userName, users) => users.Where(u => u.UserName == userName).FirstOrDefault() ); }
public void Evaluate(EvaluateContext context) { context.For<String>("Text", () => "") .Token( // {WrapNotEmpty:<left wrapper>[,<right wrapper>]} token => { if (token.StartsWith("WrapNotEmpty:", StringComparison.OrdinalIgnoreCase)) { return token.Substring("WrapNotEmpty:".Length); } return null; }, (param, token) => { if (String.IsNullOrEmpty(token)) return String.Empty; var index = param.IndexOf(','); // No right wrapper if (index == -1) { token = param + token; } else { token = param.Substring(0, index) + token + param.Substring(index + 1); } return token; }); }
public void Evaluate(EvaluateContext context) { if (_workContextAccessor.GetContext().HttpContext == null) { return; } context.For("Request", _workContextAccessor.GetContext().HttpContext.Request) .Token( token => token.StartsWith("QueryString:", StringComparison.OrdinalIgnoreCase) ? token.Substring("QueryString:".Length) : null, (token, request) => request.QueryString.Get(token) ) .Token( token => token.StartsWith("Form:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Form:".Length) : null, (token, request) => request.Form.Get(token) ) .Token( token => token.StartsWith("Route:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Route:".Length) : null, (token, request) => GetRouteValue(token, request) ) .Token("Content", (request) => DisplayText(GetRoutedContentItem(request)) ) .Chain("Content", "Content", (request) => GetRoutedContentItem(request) ); }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") .Token("Id", content => content.Id) .Token("Author", AuthorName) .Chain("Author", "User", content => content.As<ICommonPart>().Owner) .Token("Date", content => content.As<ICommonPart>().CreatedUtc) .Chain("Date", "Date", content => content.As<ICommonPart>().CreatedUtc) .Token("Identity", content => _contentManager.GetItemMetadata(content).Identity.ToString()) .Token("ContentType", content => content.ContentItem.TypeDefinition.DisplayName) .Chain("ContentType", "TypeDefinition", content => content.ContentItem.TypeDefinition) .Token("DisplayText", content => _contentManager.GetItemMetadata(content).DisplayText) .Chain("DisplayText", "Text", content => _contentManager.GetItemMetadata(content).DisplayText) .Token("DisplayUrl", content => new UrlHelper(_workContextAccessor.GetContext().HttpContext.Request.RequestContext).RouteUrl(_contentManager.GetItemMetadata(content).DisplayRouteValues)) .Chain("DisplayUrl", "Url", content => new UrlHelper(_workContextAccessor.GetContext().HttpContext.Request.RequestContext).RouteUrl(_contentManager.GetItemMetadata(content).DisplayRouteValues)) .Token("EditUrl", content => new UrlHelper(_workContextAccessor.GetContext().HttpContext.Request.RequestContext).RouteUrl(_contentManager.GetItemMetadata(content).EditorRouteValues)) .Chain("EditUrl", "Url", content => new UrlHelper(_workContextAccessor.GetContext().HttpContext.Request.RequestContext).RouteUrl(_contentManager.GetItemMetadata(content).EditorRouteValues)) .Token("Container", content => { var container = Container(content); if(container == null) { return string.Empty; } return _contentManager.GetItemMetadata(container).DisplayText; }) .Chain("Container", "Content", content => Container(content)) ; if (context.Target == "Content") { var forContent = context.For<IContent>("Content"); // is there a content available in the context ? if (forContent != null && forContent.Data != null && forContent.Data.ContentItem != null) { foreach (var typePart in forContent.Data.ContentItem.TypeDefinition.Parts) { var part = typePart; foreach (var partField in typePart.PartDefinition.Fields) { var field = partField; var tokenName = "Fields." + typePart.PartDefinition.Name + "." + partField.Name; forContent.Token( tokenName, content => LookupField(content, part.PartDefinition.Name, field.Name).Storage.Get<string>()); forContent.Chain( tokenName, partField.FieldDefinition.Name, content => LookupField(content, part.PartDefinition.Name, field.Name)); } } } } context.For<string>("Url") .Token("Absolute", url => new UrlHelper(_workContextAccessor.GetContext().HttpContext.Request.RequestContext).MakeAbsolute(url)); context.For<TextField>("TextField") .Token("Length", field => (field.Value ?? "").Length); context.For<ContentTypeDefinition>("TypeDefinition") .Token("Name", def => def.Name) .Token("DisplayName", def => def.DisplayName) .Chain("DisplayName", "Text", def => def.DisplayName) .Token("Parts", def => string.Join(", ", def.Parts.Select(x => x.PartDefinition.Name).ToArray())) .Token("Fields", def => string.Join(", ", def.Parts.SelectMany(x => x.PartDefinition.Fields.Select(x2 => x2.FieldDefinition.Name + " " + x.PartDefinition.Name + "." + x2.Name)).ToArray())); }
public void Evaluate(EvaluateContext context) { context.For <String>("Text", () => "") .Token( // {Text} token => token == String.Empty ? String.Empty : null, (token, d) => d.ToString()) .Token( // {Text.Limit:<length>[,<ellipsis>]} token => { if (token.StartsWith("Limit:", StringComparison.OrdinalIgnoreCase)) { var param = token.Substring("Limit:".Length); return(param); } return(null); }, (token, t) => Limit(t, token)) // {Text.Format:<formatstring>} .Token( token => token.StartsWith("Format:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Format:".Length) : null, (token, d) => String.Format(d, token)) .Token(token => token.StartsWith("TrimEnd:", StringComparison.OrdinalIgnoreCase) ? token.Substring("TrimEnd:".Length) : null, TrimEnd) .Token("UrlEncode", HttpUtility.UrlEncode) .Token("HtmlEncode", HttpUtility.HtmlEncode) .Token("LineEncode", text => text.Replace(System.Environment.NewLine, "<br />")) ; }
public void Evaluate(EvaluateContext context) { //((dynamic)context.Data["Content"]).CommonPart.Creator.Value context.For <IContent>("Content") .Token("CreatorEmail", x => GetTheValue(x)) //content => ((dynamic)content.As<ICommonPart>()).Creator.Value)//GetTheValue) // content => _orchardServices.ContentManager.Get((Int32)((dynamic)content).Creator.Value, VersionOptions.Latest).As<UserPart>().Email) ; }
/// <summary> /// Evaluates an expression on this frame. /// WARNING: if an expression has side effects, you will need to Refresh the IInspector and /// get the stack information to get up to date info. /// </summary> public string Evaluate(string expression, EvaluateContext context = EvaluateContext.None) { this.VerifyNotDisposed(); EvaluateResponseValue response = this.DebuggerRunner.RunCommand(new EvaluateCommand(expression, this.Id, context)); return(response.body.result); }
private object TokenValue(EvaluateContext context, string shapeName, string data) { var parameters = Arguments.From(context.Data.Values, context.Data.Keys); var shape = _shapeFactory.Create(shapeName, parameters); return(_shapeDisplay.Display(shape)); }
public void Evaluate(EvaluateContext context) { var forContent = context.For <ISite>("Site", (Func <ISite>)(() => _workContextAccessor.GetContext().CurrentSite)); var urlPrefixFunc = (Func <ISite, object>)(content => _shellSettings.RequestUrlPrefix ?? ""); var topLevelPrefixFunc = (Func <ISite, object>)(content => { var httpContext = _httpContextAccessor.Current(); var appPath = httpContext.Request.ApplicationPath; if (appPath == "/") { appPath = ""; } if (!string.IsNullOrWhiteSpace(_shellSettings.RequestUrlPrefix)) { appPath = string.Concat(appPath, "/", _shellSettings.RequestUrlPrefix, "/"); } if (!appPath.StartsWith("/")) { appPath = "/" + appPath; } if (!appPath.EndsWith("/")) { appPath = appPath + "/"; } return(appPath); }); forContent .Token("RequestUrlPrefix", urlPrefixFunc) .Chain("RequestUrlPrefix", "Text", urlPrefixFunc) .Token("TenantTopLevel", topLevelPrefixFunc) .Chain("TenantTopLevel", "Text", topLevelPrefixFunc) ; // same as Orchard.Core.Settings.Tokens.SettingsTokens if (context.Target == "Site") { // is there a content available in the context ? if (forContent.Data != null && forContent.Data.ContentItem != null) { var customSettingsPart = _contentDefinitionManager.GetTypeDefinition("Site"); foreach (var partField in customSettingsPart.Parts.SelectMany(x => x.PartDefinition.Fields)) { var field = partField; var tokenName = partField.Name; forContent.Token( tokenName, (Func <IContent, object>)(content => LookupField(content, field.Name).Storage.Get <string>())); forContent.Chain( tokenName, partField.FieldDefinition.Name, (Func <IContent, object>)(content => LookupField(content, field.Name))); } } } context.For <CultureInfo>("CurrentCulture", CultureInfo.GetCultureInfo(_workContextAccessor.GetContext().CurrentCulture)) .Token("Culture", cultureInfo => cultureInfo) .Chain("Culture", "Culture", cultureInfo => cultureInfo); }
public void Evaluate(EvaluateContext context) { context.For <FormSubmissionTokenContext>("FormSubmission") .Token(token => token.StartsWith("Field:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Field:".Length) : null, GetFieldValue) .Chain(FilterChainParam, "Text", GetFieldValue) .Token(token => token.StartsWith("IsValid:", StringComparison.OrdinalIgnoreCase) ? token.Substring("IsValid:".Length) : null, GetFieldValidationStatus); }
public void Evaluate(EvaluateContext context) { var evaluate = context.For <EndpointPart>("Endpoints", GetCurrentPart(context)); EvaluateCurrentTokens(evaluate); EvaluateAutoTokens(evaluate); }
public void Evaluate(EvaluateContext context) { context.For <IContent>("Content") .Token("Reference", order => order.As <OrderPart>().Reference) .Chain("Reference", "Text", order => order.As <OrderPart>().Reference) ; }
private string FindProperty(string fullToken, IContent data, EvaluateContext context) { string[] names = fullToken.Split('-'); ContentItem content = data.ContentItem; if (names.Length < 2) { return(""); } string partName = names[0]; string propName = names[1]; try { foreach (var part in content.Parts) { string partType = part.GetType().ToString().Split('.').Last(); if (partType.Equals(partName, StringComparison.InvariantCultureIgnoreCase)) { return(part.GetType().GetProperty(propName).GetValue(part, null).ToString()); } } }catch { return("parameter error"); } return("parameter not found"); }
public void Evaluate(EvaluateContext context) { // Dummy item as workaround for this: https://orchard.codeplex.com/workitem/19693 context.For("Content", () => (IContent)new ContentItem()) .Token("Current", content => string.Empty) .Chain("Current", "Content", content => CurrentContent); }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") // {Content.Slug} .Token("Slug", (content => content == null ? String.Empty : _slugService.Slugify(content))) .Token("Path", (content => { var autoroute = content.As<AutoroutePart>(); if (autoroute == null) { return String.Empty; } return autoroute.DisplayAlias; })) // {Content.ParentPath} .Token("ParentPath", (content => { var common = content.As<CommonPart>(); if (common == null || common.Container == null) { return String.Empty; } var ar = common.Container.As<AutoroutePart>(); if (ar == null) { return String.Empty; } if (String.IsNullOrEmpty(ar.DisplayAlias)) return String.Empty; return ar.DisplayAlias + "/"; })); context.For<ContentTypeDefinition>("TypeDefinition") // {Content.ContentType.Slug} .Token("Slug", (ctd => _slugService.Slugify(ctd.DisplayName))); context.For<String>("Text") .Token("Slug", text => _slugService.Slugify(text)); }
public void Evaluate(EvaluateContext context) { context.For<String>("Text", () => "") // {Text} .Token( token => token == String.Empty ? String.Empty : null, (token, d) => d.ToString()) // {Text.Limit:<length><:ellipsis>} .Token( token => { if (token.StartsWith("Limit:", StringComparison.OrdinalIgnoreCase)) { var param = token.Substring("Limit:".Length); var split = token.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (split.Length > 0 && split.Length <= 2) { return param; } } return null; }, (token, t) => Limit(token,t)) // {Text.Format:<formatstring>} .Token( token => token.StartsWith("Format:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Format:".Length) : null, (token, d) => String.Format(d,token)) .Token("UrlEncode", text => HttpUtility.UrlEncode(text)) .Token("HtmlEncode", text => HttpUtility.HtmlEncode(text)) ; }
public void Evaluate(EvaluateContext context) { context.For("Shape", "") .Token(t => t.StartsWith("RazorExecute", StringComparison.OrdinalIgnoreCase) ? t.Substring(0, (t.IndexOf(".") > 0 ? t.IndexOf(".") : t.Length)) : null, (fullToken, data) => { _fullTokenName = fullToken; return(ExecuteRazorCode(fullToken)); }) .Chain(_fullTokenName, "Text", d => ExecuteRazorCode(_fullTokenName)); }
public void Evaluate(EvaluateContext context) { if (_currentContentAccessor.CurrentContentItem == null) { return; } else if (_currentContentAccessor.CurrentContentItem.As <CalendarPart>() == null) { return; } context.For("Content", _currentContentAccessor.CurrentContentItem) .Token("CalendarStartDate", content => GetStartDate(content)) .Chain("CalendarStartDate", "Date", content => { DateTime dateResult; if (DateTime.TryParse(GetStartDate(content), _cultureInfo.Value, DateTimeStyles.None, out dateResult)) { return(dateResult); } else { return(null); } }) .Token("CalendarEndDate", content => GetEndDate(content)) .Chain("CalendarEndDate", "Date", content => { DateTime dateResult; if (DateTime.TryParse(GetEndDate(content), _cultureInfo.Value, DateTimeStyles.None, out dateResult)) { return(dateResult); } else { return(null); } }); }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") .Token("PageTitle", content => { var part = content.As<TitleAndMetaPart>(); var settings = part.TypePartDefinition.Settings.GetModel<TitleAndMetaPartSettings>(); string title = null; if (settings.AllowTitle && !string.IsNullOrWhiteSpace(part.Title)) { title = part.Title; } else if (!string.IsNullOrWhiteSpace(settings.DefaultTitle)) { title = _tokenizer.Replace(settings.DefaultTitle, new { Content = part.ContentItem }); } return title; }) .Token("MetaDescription", content => { var part = content.As<TitleAndMetaPart>(); var settings = part.TypePartDefinition.Settings.GetModel<TitleAndMetaPartSettings>(); string description = null; if (settings.AllowDescription && !string.IsNullOrWhiteSpace(part.Description)) { description = part.Description; } else if (!string.IsNullOrWhiteSpace(settings.DefaultDescription)) { description = _tokenizer.Replace(settings.DefaultDescription, new { Content = part.ContentItem }); } return description; }); }
public void Evaluate(EvaluateContext context) { // Dummy item as workaround for this: https://orchard.codeplex.com/workitem/19693 context.For("Content", () => (IContent) new ContentItem()) .Token("Current", content => string.Empty) .Chain("Current", "Content", content => CurrentContent); }
public void Evaluate(EvaluateContext context) { context.For<String>("Text", () => "") .Token( // {Text} token => token == String.Empty ? String.Empty : null, (token, d) => d.ToString()) .Token( // {Text.Limit:<length>[,<ellipsis>]} token => { if (token.StartsWith("Limit:", StringComparison.OrdinalIgnoreCase)) { var param = token.Substring("Limit:".Length); return param; } return null; }, (token, t) => Limit(t, token)) // {Text.Format:<formatstring>} .Token( token => token.StartsWith("Format:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Format:".Length) : null, (token, d) => String.Format(d,token)) .Token(token => token.StartsWith("TrimEnd:", StringComparison.OrdinalIgnoreCase) ? token.Substring("TrimEnd:".Length) : null, TrimEnd) .Token("UrlEncode", HttpUtility.UrlEncode) .Token("HtmlEncode", HttpUtility.HtmlEncode) .Token("LineEncode", text => text.Replace(System.Environment.NewLine, "<br />")) ; }
public void Evaluate(EvaluateContext context) { context.For("Date", () => _clock.UtcNow) // {Date.Since} .Token("Since", DateTimeRelative) // {Date.Local} .Token("Local", d => _dateLocalizationServices.ConvertToLocalizedString(d)) .Chain("Local", "Date", d => _dateLocalizationServices.ConvertToSiteTimeZone(d)) // {Date.Short} .Token("Short", d => _dateLocalizationServices.ConvertToLocalizedString(d, _dateTimeFormats.ShortDateTimeFormat, new DateLocalizationOptions() { EnableTimeZoneConversion = false })) // {Date.ShortDate} .Token("ShortDate", d => _dateLocalizationServices.ConvertToLocalizedString(d, _dateTimeFormats.ShortDateFormat, new DateLocalizationOptions() { EnableTimeZoneConversion = false })) // {Date.ShortTime} .Token("ShortTime", d => _dateLocalizationServices.ConvertToLocalizedString(d, _dateTimeFormats.ShortTimeFormat, new DateLocalizationOptions() { EnableTimeZoneConversion = false })) // {Date.Long} .Token("Long", d => _dateLocalizationServices.ConvertToLocalizedString(d, _dateTimeFormats.LongDateTimeFormat, new DateLocalizationOptions() { EnableTimeZoneConversion = false })) // {Date.LongDate} .Token("LongDate", d => _dateLocalizationServices.ConvertToLocalizedString(d, _dateTimeFormats.LongDateFormat, new DateLocalizationOptions() { EnableTimeZoneConversion = false })) // {Date.LongTime} .Token("LongTime", d => _dateLocalizationServices.ConvertToLocalizedString(d, _dateTimeFormats.LongTimeFormat, new DateLocalizationOptions() { EnableTimeZoneConversion = false })) // {Date} .Token( token => token == String.Empty ? String.Empty : null, (token, d) => _dateLocalizationServices.ConvertToLocalizedString(d, new DateLocalizationOptions() { EnableTimeZoneConversion = false })) // {Date.Format:<formatString>} .Token( token => token.StartsWith("Format:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Format:".Length) : null, (token, d) => _dateLocalizationServices.ConvertToLocalizedString(d, token, new DateLocalizationOptions() { EnableTimeZoneConversion = false })); }
public void Evaluate(EvaluateContext context) { // Adding html converted chars to regex (< is < and > is >) context.For <String>("Text", () => "") .Token("StripHtml", i => Regex.Replace(i, "(<|<).*?(>|>)", string.Empty)) .Chain("StripHtml", "Text", i => Regex.Replace(i, "(<|<).*?(>|>)", string.Empty)) ; }
public void Evaluate(EvaluateContext context) { //If you want to Chain TextTokens you have to use the (PartName-PropertyName).SomeOtherTextToken context.For <IContent>("Content") .Token(FilterTokenParam, //t.StartsWith("Parameter:", StringComparison.OrdinalIgnoreCase) ? t.Substring("Parameter:".Length) : null, (fullToken, data) => { return(FindProperty(fullToken, data, context)); }) .Chain(FilterChainParam, "Text", (token, data) => { return(FindProperty(token, data, context)); }); }
public void Evaluate(EvaluateContext context) { context.For("User", () => _orchardServices.WorkContext.CurrentUser ?? _anonymousUser) .Token("Name", u => u.UserName) .Token("Email", u => u.Email) .Token("Id", u => u.Id) .Chain("Content", "Content", u => u.ContentItem); // todo: cross-module dependency -- should be provided by the User module? //.Token("Roles", user => string.Join(", ", user.As<UserRolesPart>().Roles.ToArray())); }
public void Evaluate(EvaluateContext context) { if (_workContextAccessor.GetContext().HttpContext == null) { return; } context.For("Url", () => _urlHelper) .Token(token => token.StartsWith("Action:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Action:".Length) : null, GetRoute); }
public void Evaluate(EvaluateContext context) { context.For<IContent>("CustomUser") .Token("ActivationCode", content => content.As<CustomUserPart>().ActivationCode) .Chain("ActivationCode", "ActivationCode", content => content.As<CustomUserPart>().ActivationCode) .Token("WelcomeText", content => content.As<CustomUserPart>().WelcomeText) .Chain("WelcomeText", "WelcomeText", content => content.As<CustomUserPart>().WelcomeText) .Token("User", content => content.As<CustomUserPart>().User) .Chain("User", "User", content => content.As<CustomUserPart>().User); }
public void Evaluate(EvaluateContext context) { var item = _workContextAccessor.GetContext().GetState<ContentItem>("ContentContext"); if (item != null) { if (!context.Data.ContainsKey("Context")) { context.Data.Add("Context", item); } context.For<IContent>("Context").Chain("This", "Content", content => item); } }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") .Token("NodeLabel", content => { var labelAspect = content.As<IAssociativyNodeLabelAspect>(); if (labelAspect == null) return string.Empty; return labelAspect.Label; }); }
public void Evaluate(EvaluateContext context) { context.For("Request", _workContextAccessor.GetContext().HttpContext.Request) .Token( token => token.StartsWith("QueryString:", StringComparison.OrdinalIgnoreCase) ? token.Substring("QueryString:".Length) : null, (token, request) => request.QueryString.Get(token) ) .Token( token => token.StartsWith("Form:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Form:".Length) : null, (token, request) => request.Form.Get(token) ); }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") .Token("Culture", x => _localizationService.GetContentCulture(x)) .Chain("Culture", "Culture", x => CultureInfo.GetCultureInfo(_localizationService.GetContentCulture(x))) ; context.For<CultureInfo>("Culture") .Token("Name", info => info.Name) .Token("TwoLetterISOLanguageName", info => info.TwoLetterISOLanguageName) ; }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") .Token("BidedOn", content => content.As<BidPart>().BidedOn) .Chain("BidedOn", "Content", content => _contentManager.Get(content.As<BidPart>().BidedOn)) .Token("BidPrice", content => content.As<BidPart>().BidPrice) .Chain("BidPrice", "Text", content => content.As<BidPart>().BidPrice) //.Token("BidAuthor", BidAuthor) //.Chain("BidAuthor", "Text", BidAuthor) .Token("BidDeleteUrl", content => CreateProtectedUrl("Delete", content.As<BidPart>())) ; }
public void Evaluate(EvaluateContext context) { context.For<TaxonomyField>("TaxonomyField") .Token("Terms", field => String.Join(", ", field.Terms.Select(t => t.Name).ToArray())) .Token(FilterTokenParam, (index, field) => { var term = field.Terms.ElementAtOrDefault(Convert.ToInt32(index)); return term != null ? term.Name : null; }) .Chain(FilterChainParam, "Content", (index, field) => field.Terms.ElementAtOrDefault(Convert.ToInt32(index))) ; }
public void Evaluate(EvaluateContext context) { context.For<MediaLibraryPickerField>("MediaLibraryPickerField") .Token("Url", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.MediaUrl; }) .Chain("Url", "Url", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.MediaUrl; }) .Token("MimeType", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.MimeType; }) .Chain("MimeType", "Text", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.MimeType; }) .Token("Caption", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.Caption; }) .Chain("Caption", "Text", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.Caption; }) .Token("AlternateText", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.AlternateText; }) .Chain("AlternateText", "Text", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.AlternateText; }) .Token("FolderPath", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.FolderPath; }) .Chain("FolderPath", "Text", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.FolderPath; }) .Token("FileName", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.FileName; }) .Chain("FileName", "Text", field => { var mediaPart = MediaPart(field); return mediaPart == null ? "" : mediaPart.FileName; }) ; }
public void Evaluate(EvaluateContext context) { context.For("Date", () => _clock.UtcNow) // {Date.Since} .Token("Since", DateTimeRelative) // {Date} .Token( token => token == "" ? "" : null, (token, d) => d.ToString()) // {Date.Format:<formatstring>} .Token( token => token.StartsWith("Format:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Format:".Length) : null, (token, d) => d.ToString(token)); }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") .Token("Culture", content => { var ci = GetContentCultureInfo(content); return ci == null ? string.Empty : ci.Name.ToLower(); }) .Chain("Culture", "CultureInfo", content => GetContentCultureInfo(content)); context.For<CultureInfo>("CultureInfo") .Token("CultureName", ci => ci != null ? ci.Name.ToLower() : string.Empty) .Token("ThreeLetterName", ci => ci != null ? ci.ThreeLetterISOLanguageName : string.Empty) .Token("TwoLetterName", ci => ci != null ? ci.TwoLetterISOLanguageName : string.Empty); }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") .Token("Customer", order => order.As<CustomerOrderPart>().Customer.Title) .Chain("Customer", "Content", order => order.As<CustomerOrderPart>().Customer.ContentItem) ; context.For<IContent>("Content") .Token("FirstName", customer => customer.As<CustomerPart>().FirstName) .Chain("FirstName", "Text", customer => customer.As<CustomerPart>().FirstName) .Token("LastName", customer => customer.As<CustomerPart>().LastName) .Chain("LastName", "Text", customer => customer.As<CustomerPart>().LastName) .Token("Email", customer => customer.As<CustomerPart>().Email) .Chain("Email", "Text", customer => customer.As<CustomerPart>().Email) ; }
public void Evaluate(EvaluateContext context) { context.For<object>("Site", null) .Token("Global1", o => "[global1]") .Token("Global2", o => "[global2]") .Token("Global3", o => "[global3]") .Token("CurrentUser", o => new TestUser { UserName = "******" }) .Chain("CurrentUser", "User", o => new TestUser { UserName = "******" }); context.For<IContent>("Content") .Token("Id", u => u.Id); context.For<IUser>("User", () => new TestUser { UserName = "******" }) .Token("Name", u => u.UserName) .Token("Email", u => u.Email) .Token("Birthdate", u => "Nov 15") .Chain("Birthdate", "DateTime", u => new DateTime(1978, 11, 15)); context.For<object>("Date", null) .Token("Now", o => DateTime.Now.ToShortDateString()) .Chain("Now", "DateTime", o => DateTime.Now); context.For<DateTime>("DateTime") .Token((token, value) => value.ToString(token)); context.For<TestUser[]>("Users", () => new TestUser[] { new TestUser { UserName = "******", Email = "*****@*****.**" }, new TestUser { UserName = "******", Email = "*****@*****.**" }, new TestUser { UserName = "******", Email = "*****@*****.**" } }) .Token( (token) => token.StartsWith("User:"******"User:"******"User:"******"User:"******"User", (userName, users) => users.Where(u => u.UserName == userName).FirstOrDefault() ); }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") .Token("Left", content => _contentManager.GetItemMetadata(Left(content)).DisplayText) .Chain("Left", "Content", c => Left(c)) .Token("LeftPath", (c => { var left = Left(c); var aliasPart = left.As<IAliasAspect>(); if (aliasPart==null) return null; string alias = aliasPart.Path; if (String.IsNullOrWhiteSpace(alias)) return ""; return alias + "/"; })) .Chain("Right", "Content", c => { return Right(c); }); }
public void Evaluate(EvaluateContext context) { context.For<IContent>("Content") .Token("CommentedOn", content => content.As<CommentPart>().CommentedOn) .Chain("CommentedOn", "Content", content => _contentManager.Get(content.As<CommentPart>().CommentedOn)) .Token("CommentMessage", content => content.As<CommentPart>().CommentText) .Chain("CommentMessage", "Text", content => content.As<CommentPart>().CommentText) .Token("CommentAuthor", CommentAuthor) .Chain("CommentAuthor", "Text", CommentAuthor) .Token("CommentAuthorUrl", content => content.As<CommentPart>().SiteName) .Chain("CommentAuthorUrl", "Text", content => content.As<CommentPart>().SiteName) .Token("CommentAuthorEmail", content => content.As<CommentPart>().Email) .Chain("CommentAuthorEmail", "Text", content => content.As<CommentPart>().Email) .Token("CommentApproveUrl", content => CreateProtectedUrl("Approve", content.As<CommentPart>())) .Token("CommentModerateUrl", content => CreateProtectedUrl("Moderate", content.As<CommentPart>())) .Token("CommentDeleteUrl", content => CreateProtectedUrl("Delete", content.As<CommentPart>())) ; }
public void Evaluate(EvaluateContext context) { context.For<TaxonomyField>("TaxonomyField") .Token("Terms", field => String.Join(", ", field.Terms.Select(t => t.Name).ToArray())) .Token( token => token.StartsWith("Terms:", StringComparison.OrdinalIgnoreCase) ? token.Substring("Terms:".Length) : null, (token, t) => { var index = Convert.ToInt32(token); return index + 1 > t.Terms.Count() ? null : t.Terms.ElementAt(index).Name; }) // todo: extend Chain() in order to accept a filter like in Token() so that we can chain on an expression .Chain("Terms:0", "Content", t => t.Terms.ElementAt(0)) .Chain("Terms:1", "Content", t => t.Terms.ElementAt(1)) .Chain("Terms:2", "Content", t => t.Terms.ElementAt(2)) .Chain("Terms:3", "Content", t => t.Terms.ElementAt(3)) ; }
public void Evaluate(EvaluateContext context) { if (_workContextAccessor.GetContext().HttpContext == null) { return; } context.For<WorkflowContext>("Workflow") .Token( token => token.StartsWith("TriggerUrl:", StringComparison.OrdinalIgnoreCase) ? token.Substring("TriggerUrl:".Length) : null, (token, workflowContext) => { int contentItemId = 0; if (workflowContext.Content != null) { contentItemId = workflowContext.Content.Id; } var url = "~/Workflows/Signal/Trigger?nonce=" + HttpUtility.UrlEncode(_signalService.Value.CreateNonce(contentItemId, token)); return new UrlHelper(_workContextAccessor.GetContext().HttpContext.Request.RequestContext).MakeAbsolute(url); }); }
public void Evaluate(EvaluateContext context) { context.For<object>("Site", null) .Token("Global1", o => "[global1]") .Token("Global2", o => "[global2]") .Token("Global3", o => "[global3]") .Token("CurrentUser", o => new TestUser { UserName = "******" }) .Chain("CurrentUser", "User", o => new TestUser { UserName = "******" }); context.For<IUser>("User", () => new TestUser { UserName = "******" }) .Token("Name", u => u.UserName) .Token("Birthdate", u => "Nov 15") .Chain("Birthdate", "DateTime", u => new DateTime(1978, 11, 15)); context.For<object>("Date", null) .Token("Now", o => DateTime.Now.ToShortDateString()) .Chain("Now", "DateTime", o => DateTime.Now); context.For<DateTime>("DateTime") .Token((token, value) => value.ToString(token)); }
public void Evaluate(EvaluateContext context) { var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext); context.For<IContent>("Content") .Token("PostMessage", content => content.As<PostPart>().Text) .Chain("PostMessage", "Text", content => content.As<PostPart>().Text) //viagra-test-123 is used by https://akismet.com/ to flag a subsmission as spam for testing purposes .Token("PostAuthor", content => content.As<CommonPart>().Owner.UserName) //content => { return "viagra-test-123"; }) .Chain("PostAuthor", "Text", content => content.As<CommonPart>().Owner.UserName) //content => { return "viagra-test-123"; }) .Token("PostAuthorEmail", content => content.As<CommonPart>().Owner.Email) .Chain("PostAuthorEmail", "Text", content => content.As<CommonPart>().Owner.Email) .Token("PostUserIp", content => content.As<PostPart>().IP) .Token("PostPermalink", content => urlHelper.MakeAbsolute(urlHelper.ItemDisplayUrl(content.As<PostPart>().ContentItem))) .Token("PostFrontPage", content => urlHelper.MakeAbsolute(urlHelper.ItemDisplayUrl(content.As<PostPart>().ThreadPart.ForumPart.ForumCategoryPart.ForumsHomePagePart))) ; }