Moves strings to constants, adds ControllerContextExtensions to get the UmbracoContext from the hierarchy of ControllerContext's, changes RenderModelBinder to use this method to get the UmbracoContext, changes UmbracoViewPageOfTModel to use this method to get the UmbracoContext, adds RouteDataExtensions to get the UmbracoContext from routedata, adds extension methods on the HttpContext to get the UmbracoContext from it.

This commit is contained in:
Shannon
2016-02-16 11:17:47 +01:00
parent bef7ad1196
commit 640b2c0ee0
23 changed files with 173 additions and 73 deletions

View File

@@ -0,0 +1,28 @@
using System;
using System.Web.Routing;
namespace Umbraco.Web
{
public static class RouteDataExtensions
{
/// <summary>
/// Tries to get the Umbraco context from the DataTokens
/// </summary>
/// <param name="routeData"></param>
/// <returns></returns>
/// <remarks>
/// This is useful when working on async threads since the UmbracoContext is not copied over explicitly
/// </remarks>
public static UmbracoContext GetUmbracoContext(this RouteData routeData)
{
if (routeData == null) throw new ArgumentNullException("routeData");
if (routeData.DataTokens.ContainsKey(UmbracoContext.HttpContextItemName))
{
var umbCtx = routeData.DataTokens[UmbracoContext.HttpContextItemName] as UmbracoContext;
return umbCtx;
}
return null;
}
}
}