BoC.Sitecore.Mvc.SitecoreValueProviderFactory.SitecoreValueProvider.GetValue C# (CSharp) Method

GetValue() public method

public GetValue ( string key ) : System.Web.Mvc.ValueProviderResult
key string
return System.Web.Mvc.ValueProviderResult
            public ValueProviderResult GetValue(string key)
            {
                var context = RenderingContext.CurrentOrNull;

                var keyval = key.Split(new[] {'.'}, StringSplitOptions.RemoveEmptyEntries);
                var prefix = keyval[0];
                var property = keyval.Length > 1 ? keyval[1] : null;
                switch (prefix.ToLowerInvariant())
                {
                    case "contextitem":
                        var contextItem = context == null ? global::Sitecore.Context.Item : context.ContextItem;
                        if (contextItem == null)
                            return new ValueProviderResult(null, "contextitem", CultureInfo.CurrentCulture);
                        return GetValueResult(contextItem, property);

                    case "pagecontextitem":
                        if (context == null || context.PageContext == null || context.PageContext.Item == null)
                            return new ValueProviderResult(null, "contextitem", CultureInfo.CurrentCulture);
                        return GetValueResult(context.PageContext.Item, property);

                    case "renderingitem":

                        if (context == null || context.Rendering == null || context.Rendering.RenderingItem == null)
                            return new ValueProviderResult(null, "renderingitem", CultureInfo.CurrentCulture);;
                        return GetValueResult(context.Rendering.RenderingItem.InnerItem, property);

                    case "datasource":
                        if (context == null || context.Rendering == null || string.IsNullOrEmpty(context.Rendering.DataSource))
                            return new ValueProviderResult(null, "datasource", CultureInfo.CurrentCulture);
                        if (!ID.IsID(context.Rendering.DataSource))
                            return new ValueProviderResult(context.Rendering.DataSource, context.Rendering.DataSource, CultureInfo.CurrentCulture);;
                        var item = context.PageContext.Database.GetItem(context.Rendering.DataSource);
                        return GetValueResult(item, property);
                    default:
                        return null;
                }
            }
SitecoreValueProviderFactory.SitecoreValueProvider