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>());
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
            });
        }
Esempio n. 4
0
 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 />"))
     ;
 }
Esempio n. 5
0
 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))
     ;
 }
Esempio n. 7
0
 public void Evaluate(EvaluateContext context)
 {
     context.For <IContent>("Content")
     .Token("DateModified", DateMod)
     .Chain("DateModified", "Date", DateMod)
     ;
 }
Esempio n. 8
0
 public AuthenticationService(EvaluateContext dbContext, ProtectedSessionStorage storage, IToastService toastService, NavigationManager navigation)
 {
     _db           = dbContext;
     _storage      = storage;
     _toastService = toastService;
     _navigation   = navigation;
 }
Esempio n. 9
0
 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 ?? "");
 }
Esempio n. 11
0
        public void Evaluate(EvaluateContext context)
        {
            var evaluate = context.For <EntityDefinitionPart>("EntityDefinitions", GetCurrentPart(context));

            EvaluateCurrentTokens(evaluate);
            EvaluateAutoTokens(evaluate);
        }
Esempio n. 12
0
        /// <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);
            }
        }
Esempio n. 13
0
        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);
            });
        }
Esempio n. 14
0
        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()
                );
        }
Esempio n. 17
0
        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)
                );
        }
Esempio n. 19
0
        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()));
        }
Esempio n. 20
0
 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 />"))
     ;
 }
Esempio n. 21
0
 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)
     ;
 }
Esempio n. 22
0
        /// <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);
        }
Esempio n. 23
0
        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);
        }
Esempio n. 25
0
 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);
 }
Esempio n. 26
0
        public void Evaluate(EvaluateContext context)
        {
            var evaluate = context.For <EndpointPart>("Endpoints", GetCurrentPart(context));

            EvaluateCurrentTokens(evaluate);
            EvaluateAutoTokens(evaluate);
        }
Esempio n. 27
0
 public void Evaluate(EvaluateContext context)
 {
     context.For <IContent>("Content")
     .Token("Reference", order => order.As <OrderPart>().Reference)
     .Chain("Reference", "Text", order => order.As <OrderPart>().Reference)
     ;
 }
Esempio n. 28
0
        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");
        }
Esempio n. 29
0
 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);
 }
Esempio n. 30
0
        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));
        }
Esempio n. 31
0
 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)
        {
            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)
                   );
        }
Esempio n. 33
0
 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));
 }
Esempio n. 34
0
        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);
                                                           } });
        }
Esempio n. 35
0
        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;
                });
        }
Esempio n. 36
0
 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);
 }
Esempio n. 37
0
 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 />"))
         ;
         
 }
Esempio n. 38
0
 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 }));
 }
Esempio n. 39
0
 public void Evaluate(EvaluateContext context)
 {
     // Adding html converted chars to regex (< is &lt; and > is &gt;)
     context.For <String>("Text", () => "")
     .Token("StripHtml", i => Regex.Replace(i, "(<|&lt;).*?(>|&gt;)", string.Empty))
     .Chain("StripHtml", "Text", i => Regex.Replace(i, "(<|&lt;).*?(>|&gt;)", string.Empty))
     ;
 }
Esempio n. 40
0
 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)); });
 }
Esempio n. 41
0
 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()));
 }
Esempio n. 42
0
        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);
        }
Esempio n. 43
0
		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;
         });
 }
Esempio n. 46
0
 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)
            ;
        }
Esempio n. 48
0
 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>()))
         ;
 }
Esempio n. 49
0
        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)))
                   ;
        }
Esempio n. 50
0
 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);
        }
Esempio n. 53
0
        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)
                ;
        }
Esempio n. 54
0
        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()
                );

        }
Esempio n. 55
0
        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);
                });
        }
Esempio n. 56
0
 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>()))
         ;
 }
Esempio n. 57
0
        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))
                   ;
        }
Esempio n. 58
0
        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);
                       });
        }
Esempio n. 59
0
        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));
        }
Esempio n. 60
0
        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)))

                ;
        }