Removing unnecessary calls ro Resolve<>()

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2011-10-05 14:48:31 -07:00
parent de4de3bad8
commit fef8634902
11 changed files with 49 additions and 69 deletions

View File

@@ -3,7 +3,6 @@ using System.Xml;
using Orchard.ContentManagement; using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers; using Orchard.ContentManagement.Drivers;
using Orchard.ContentManagement.Handlers; using Orchard.ContentManagement.Handlers;
using Orchard.Core.Common.Services;
using Orchard.Mvc; using Orchard.Mvc;
using Orchard.PublishLater.Models; using Orchard.PublishLater.Models;
using Orchard.PublishLater.Services; using Orchard.PublishLater.Services;
@@ -14,14 +13,16 @@ using System.Globalization;
namespace Orchard.PublishLater.Drivers { namespace Orchard.PublishLater.Drivers {
public class PublishLaterPartDriver : ContentPartDriver<PublishLaterPart> { public class PublishLaterPartDriver : ContentPartDriver<PublishLaterPart> {
private const string TemplateName = "Parts/PublishLater"; private const string TemplateName = "Parts/PublishLater";
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IPublishLaterService _publishLaterService; private readonly IPublishLaterService _publishLaterService;
private const string DatePattern = "M/d/yyyy"; private const string DatePattern = "M/d/yyyy";
private const string TimePattern = "h:mm tt"; private const string TimePattern = "h:mm tt";
public PublishLaterPartDriver( public PublishLaterPartDriver(
IOrchardServices services, IOrchardServices services,
ICommonService commonService, IHttpContextAccessor httpContextAccessor,
IPublishLaterService publishLaterService) { IPublishLaterService publishLaterService) {
_httpContextAccessor = httpContextAccessor;
_publishLaterService = publishLaterService; _publishLaterService = publishLaterService;
T = NullLocalizer.Instance; T = NullLocalizer.Instance;
Services = services; Services = services;
@@ -61,7 +62,7 @@ namespace Orchard.PublishLater.Drivers {
updater.TryUpdateModel(model, Prefix, null, null); updater.TryUpdateModel(model, Prefix, null, null);
if (Services.WorkContext.Resolve<IHttpContextAccessor>().Current().Request.Form["submit.Save"] == "submit.PublishLater") { if (_httpContextAccessor.Current().Request.Form["submit.Save"] == "submit.PublishLater") {
if (!string.IsNullOrWhiteSpace(model.ScheduledPublishDate) && !string.IsNullOrWhiteSpace(model.ScheduledPublishTime)) { if (!string.IsNullOrWhiteSpace(model.ScheduledPublishDate) && !string.IsNullOrWhiteSpace(model.ScheduledPublishTime)) {
DateTime scheduled; DateTime scheduled;
string parseDateTime = String.Concat(model.ScheduledPublishDate, " ", model.ScheduledPublishTime); string parseDateTime = String.Concat(model.ScheduledPublishDate, " ", model.ScheduledPublishTime);

View File

@@ -26,8 +26,7 @@
// these are just hacked together to fire existing partials... can change // these are just hacked together to fire existing partials... can change
Model.Header.Add(Display.Header()); Model.Header.Add(Display.Header());
var thisUser = Html.Resolve<IAuthenticationService>().GetAuthenticatedUser(); Model.Header.Add(Display.User(CurrentUser: WorkContext.CurrentUser));
Model.Header.Add(Display.User(CurrentUser: thisUser));
Model.Footer.Add(Display.OrchardVersion()); Model.Footer.Add(Display.OrchardVersion());
if (Model.Title != null) { if (Model.Title != null) {

View File

@@ -29,6 +29,7 @@ namespace Orchard.ContentManagement {
private readonly Func<IContentManagerSession> _contentManagerSession; private readonly Func<IContentManagerSession> _contentManagerSession;
private readonly Lazy<IContentDisplay> _contentDisplay; private readonly Lazy<IContentDisplay> _contentDisplay;
private readonly Lazy<ISessionLocator> _sessionLocator; private readonly Lazy<ISessionLocator> _sessionLocator;
private readonly Lazy<IEnumerable<IContentHandler>> _handlers;
private const string Published = "Published"; private const string Published = "Published";
private const string Draft = "Draft"; private const string Draft = "Draft";
@@ -40,13 +41,15 @@ namespace Orchard.ContentManagement {
IContentDefinitionManager contentDefinitionManager, IContentDefinitionManager contentDefinitionManager,
Func<IContentManagerSession> contentManagerSession, Func<IContentManagerSession> contentManagerSession,
Lazy<IContentDisplay> contentDisplay, Lazy<IContentDisplay> contentDisplay,
Lazy<ISessionLocator> sessionLocator) { Lazy<ISessionLocator> sessionLocator,
Lazy<IEnumerable<IContentHandler>> handlers) {
_context = context; _context = context;
_contentTypeRepository = contentTypeRepository; _contentTypeRepository = contentTypeRepository;
_contentItemRepository = contentItemRepository; _contentItemRepository = contentItemRepository;
_contentItemVersionRepository = contentItemVersionRepository; _contentItemVersionRepository = contentItemVersionRepository;
_contentDefinitionManager = contentDefinitionManager; _contentDefinitionManager = contentDefinitionManager;
_contentManagerSession = contentManagerSession; _contentManagerSession = contentManagerSession;
_handlers = handlers;
_contentDisplay = contentDisplay; _contentDisplay = contentDisplay;
_sessionLocator = sessionLocator; _sessionLocator = sessionLocator;
Logger = NullLogger.Instance; Logger = NullLogger.Instance;
@@ -54,15 +57,8 @@ namespace Orchard.ContentManagement {
public ILogger Logger { get; set; } public ILogger Logger { get; set; }
private IEnumerable<IContentHandler> _handlers;
public IEnumerable<IContentHandler> Handlers { public IEnumerable<IContentHandler> Handlers {
get { get { return _handlers.Value; }
if (_handlers == null) {
_handlers = _context.Resolve<IEnumerable<IContentHandler>>();
}
return _handlers;
}
} }
public IEnumerable<ContentTypeDefinition> GetContentTypeDefinitions() { public IEnumerable<ContentTypeDefinition> GetContentTypeDefinitions() {

View File

@@ -1,21 +0,0 @@
using System;
using System.Web.Mvc;
namespace Orchard.Mvc.Html {
public interface IFoo{}
public static class ContainerExtensions {
/// <summary>
/// This method performed by Erik Weisz.
/// </summary>
/// <see cref="http://en.wikipedia.org/wiki/Harry_Houdini"/>
/// <returns>himself</returns>
public static TService Resolve<TService>(this HtmlHelper html) {
var workContext = html.ViewContext.RequestContext.GetWorkContext();
if (workContext == null)
throw new ApplicationException(string.Format(@"The WorkContext cannot be found for the request. Unable to resolve '{0}'.", typeof(TService)));
return workContext.Resolve<TService>();
}
}
}

View File

@@ -7,7 +7,6 @@ using System.Web.Mvc;
using System.Web.Mvc.Html; using System.Web.Mvc.Html;
using System.Web.Routing; using System.Web.Routing;
using Orchard.Localization; using Orchard.Localization;
using Orchard.Settings;
using Orchard.Utility; using Orchard.Utility;
using Orchard.Utility.Extensions; using Orchard.Utility.Extensions;
using System.Web; using System.Web;
@@ -78,6 +77,15 @@ namespace Orchard.Mvc.Html {
return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal)); return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal));
} }
public static WorkContext GetWorkContext(this HtmlHelper html) {
var workContext = html.ViewContext.RequestContext.GetWorkContext();
if (workContext == null)
throw new ApplicationException("The WorkContext cannot be found for the request");
return workContext;
}
#region UnorderedList #region UnorderedList
public static IHtmlString UnorderedList<T>(this HtmlHelper htmlHelper, IEnumerable<T> items, Func<T, int, MvcHtmlString> generateContent, string cssClass) { public static IHtmlString UnorderedList<T>(this HtmlHelper htmlHelper, IEnumerable<T> items, Func<T, int, MvcHtmlString> generateContent, string cssClass) {
@@ -302,7 +310,7 @@ namespace Orchard.Mvc.Html {
#region AntiForgeryTokenOrchard #region AntiForgeryTokenOrchard
public static MvcHtmlString AntiForgeryTokenOrchard(this HtmlHelper htmlHelper) { public static MvcHtmlString AntiForgeryTokenOrchard(this HtmlHelper htmlHelper) {
var siteSalt = htmlHelper.Resolve<ISiteService>().GetSiteSettings().SiteSalt; var siteSalt = htmlHelper.GetWorkContext().CurrentSite.SiteSalt;
try { try {
return htmlHelper.AntiForgeryToken(siteSalt); return htmlHelper.AntiForgeryToken(siteSalt);

View File

@@ -24,15 +24,15 @@ namespace Orchard.Mvc.Html {
} }
public static void AddTitleParts(this HtmlHelper html, params string[] titleParts) { public static void AddTitleParts(this HtmlHelper html, params string[] titleParts) {
html.Resolve<IPageTitleBuilder>().AddTitleParts(titleParts); html.GetWorkContext().Resolve<IPageTitleBuilder>().AddTitleParts(titleParts);
} }
public static void AppendTitleParts(this HtmlHelper html, params string[] titleParts) { public static void AppendTitleParts(this HtmlHelper html, params string[] titleParts) {
html.Resolve<IPageTitleBuilder>().AppendTitleParts(titleParts); html.GetWorkContext().Resolve<IPageTitleBuilder>().AppendTitleParts(titleParts);
} }
public static MvcHtmlString Title(this HtmlHelper html, params string[] titleParts) { public static MvcHtmlString Title(this HtmlHelper html, params string[] titleParts) {
IPageTitleBuilder pageTitleBuilder = html.Resolve<IPageTitleBuilder>(); var pageTitleBuilder = html.GetWorkContext().Resolve<IPageTitleBuilder>();
html.AddTitleParts(titleParts); html.AddTitleParts(titleParts);
@@ -58,11 +58,11 @@ namespace Orchard.Mvc.Html {
} }
public static void AddPageClassNames(this HtmlHelper html, params object[] classNames) { public static void AddPageClassNames(this HtmlHelper html, params object[] classNames) {
html.Resolve<IPageClassBuilder>().AddClassNames(classNames); html.GetWorkContext().Resolve<IPageClassBuilder>().AddClassNames(classNames);
} }
public static MvcHtmlString ClassForPage(this HtmlHelper html, params object[] classNames) { public static MvcHtmlString ClassForPage(this HtmlHelper html, params object[] classNames) {
IPageClassBuilder pageClassBuilder = html.Resolve<IPageClassBuilder>(); IPageClassBuilder pageClassBuilder = html.GetWorkContext().Resolve<IPageClassBuilder>();
html.AddPageClassNames(classNames); html.AddPageClassNames(classNames);
//todo: (heskew) need ContentItem.ContentType //todo: (heskew) need ContentItem.ContentType

View File

@@ -1,8 +1,6 @@
using System; using System.Web.Mvc;
using System.Web.Mvc;
using System.Web.Mvc.Html; using System.Web.Mvc.Html;
using Orchard.Environment.Extensions.Models; using Orchard.Environment.Extensions.Models;
using Orchard.Themes;
using Orchard.Validation; using Orchard.Validation;
namespace Orchard.Mvc.Html { namespace Orchard.Mvc.Html {
@@ -15,11 +13,6 @@ namespace Orchard.Mvc.Html {
helper.RenderPartial(viewName); helper.RenderPartial(viewName);
} }
[Obsolete("How do you know the request theme is the same as the place the theme template is rendering from?")]
public static string ThemePath(this HtmlHelper helper, string path) {
return helper.ThemePath(helper.Resolve<IThemeManager>().GetRequestTheme(helper.ViewContext.RequestContext), path);
}
public static string ThemePath(this HtmlHelper helper, ExtensionDescriptor theme, string path) { public static string ThemePath(this HtmlHelper helper, ExtensionDescriptor theme, string path) {
return theme.Location + "/" + theme.Id + path; return theme.Location + "/" + theme.Id + path;
} }

View File

@@ -71,14 +71,19 @@ namespace Orchard.Mvc.ViewEngines.Razor {
public ScriptRegister Script { public ScriptRegister Script {
get { get {
return _scriptRegister ?? return _scriptRegister ??
(_scriptRegister = new WebViewScriptRegister(this, Html.ViewDataContainer, Html.Resolve<IResourceManager>())); (_scriptRegister = new WebViewScriptRegister(this, Html.ViewDataContainer, ResourceManager));
} }
} }
private IResourceManager _resourceManager;
public IResourceManager ResourceManager {
get { return _resourceManager ?? (_resourceManager = _workContext.Resolve<IResourceManager>()); }
}
public ResourceRegister Style { public ResourceRegister Style {
get { get {
return _stylesheetRegister ?? return _stylesheetRegister ??
(_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.Resolve<IResourceManager>(), "stylesheet")); (_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, ResourceManager, "stylesheet"));
} }
} }
@@ -92,7 +97,7 @@ namespace Orchard.Mvc.ViewEngines.Razor {
} }
public virtual void RegisterLink(LinkEntry link) { public virtual void RegisterLink(LinkEntry link) {
Html.Resolve<IResourceManager>().RegisterLink(link); ResourceManager.RegisterLink(link);
} }
public void SetMeta(string name, string content) { public void SetMeta(string name, string content) {
@@ -100,7 +105,7 @@ namespace Orchard.Mvc.ViewEngines.Razor {
} }
public virtual void SetMeta(MetaEntry meta) { public virtual void SetMeta(MetaEntry meta) {
Html.Resolve<IResourceManager>().SetMeta(meta); ResourceManager.SetMeta(meta);
} }
public void AppendMeta(string name, string content, string contentSeparator) { public void AppendMeta(string name, string content, string contentSeparator) {
@@ -108,7 +113,7 @@ namespace Orchard.Mvc.ViewEngines.Razor {
} }
public virtual void AppendMeta(MetaEntry meta, string contentSeparator) { public virtual void AppendMeta(MetaEntry meta, string contentSeparator) {
Html.Resolve<IResourceManager>().AppendMeta(meta, contentSeparator); ResourceManager.AppendMeta(meta, contentSeparator);
} }
public override void InitHelpers() { public override void InitHelpers() {
@@ -130,7 +135,7 @@ namespace Orchard.Mvc.ViewEngines.Razor {
} }
public OrchardTagBuilder Tag(dynamic shape, string tagName) { public OrchardTagBuilder Tag(dynamic shape, string tagName) {
return Html.Resolve<ITagBuilderFactory>().Create(shape, tagName); return Html.GetWorkContext().Resolve<ITagBuilderFactory>().Create(shape, tagName);
} }
public IHtmlString DisplayChildren(dynamic shape) { public IHtmlString DisplayChildren(dynamic shape) {

View File

@@ -28,7 +28,7 @@ namespace Orchard.Mvc {
public ScriptRegister Script { public ScriptRegister Script {
get { get {
return _scriptRegister ?? return _scriptRegister ??
(_scriptRegister = new ViewPageScriptRegister(Writer, Html.ViewDataContainer, Html.Resolve<IResourceManager>())); (_scriptRegister = new ViewPageScriptRegister(Writer, Html.ViewDataContainer, Html.GetWorkContext().Resolve<IResourceManager>()));
} }
} }
@@ -43,7 +43,7 @@ namespace Orchard.Mvc {
public ResourceRegister Style { public ResourceRegister Style {
get { get {
return _stylesheetRegister ?? return _stylesheetRegister ??
(_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.Resolve<IResourceManager>(), "stylesheet")); (_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.GetWorkContext().Resolve<IResourceManager>(), "stylesheet"));
} }
} }
@@ -59,7 +59,7 @@ namespace Orchard.Mvc {
} }
public virtual void RegisterLink(LinkEntry link) { public virtual void RegisterLink(LinkEntry link) {
Html.Resolve<IResourceManager>().RegisterLink(link); Html.GetWorkContext().Resolve<IResourceManager>().RegisterLink(link);
} }
public void SetMeta(string name, string content) { public void SetMeta(string name, string content) {
@@ -67,7 +67,7 @@ namespace Orchard.Mvc {
} }
public virtual void SetMeta(MetaEntry meta) { public virtual void SetMeta(MetaEntry meta) {
Html.Resolve<IResourceManager>().SetMeta(meta); Html.GetWorkContext().Resolve<IResourceManager>().SetMeta(meta);
} }
public void AppendMeta(string name, string content, string contentSeparator) { public void AppendMeta(string name, string content, string contentSeparator) {
@@ -75,7 +75,7 @@ namespace Orchard.Mvc {
} }
public virtual void AppendMeta(MetaEntry meta, string contentSeparator) { public virtual void AppendMeta(MetaEntry meta, string contentSeparator) {
Html.Resolve<IResourceManager>().AppendMeta(meta, contentSeparator); Html.GetWorkContext().Resolve<IResourceManager>().AppendMeta(meta, contentSeparator);
} }
public MvcHtmlString H(string value) { public MvcHtmlString H(string value) {
@@ -91,7 +91,7 @@ namespace Orchard.Mvc {
} }
public OrchardTagBuilder Tag(dynamic shape, string tagName) { public OrchardTagBuilder Tag(dynamic shape, string tagName) {
return Html.Resolve<ITagBuilderFactory>().Create(shape, tagName); return Html.GetWorkContext().Resolve<ITagBuilderFactory>().Create(shape, tagName);
} }
public IHtmlString DisplayChildren(dynamic shape) { public IHtmlString DisplayChildren(dynamic shape) {

View File

@@ -35,19 +35,19 @@ namespace Orchard.Mvc {
public ScriptRegister Script { public ScriptRegister Script {
get { get {
return _scriptRegister ?? return _scriptRegister ??
(_scriptRegister = new ViewPage.ViewPageScriptRegister(Writer, Html.ViewDataContainer, Html.Resolve<IResourceManager>())); (_scriptRegister = new ViewPage.ViewPageScriptRegister(Writer, Html.ViewDataContainer, Html.GetWorkContext().Resolve<IResourceManager>()));
} }
} }
public ResourceRegister Style { public ResourceRegister Style {
get { get {
return _stylesheetRegister ?? return _stylesheetRegister ??
(_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.Resolve<IResourceManager>(), "stylesheet")); (_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.GetWorkContext().Resolve<IResourceManager>(), "stylesheet"));
} }
} }
public virtual void RegisterLink(LinkEntry link) { public virtual void RegisterLink(LinkEntry link) {
Html.Resolve<IResourceManager>().RegisterLink(link); Html.GetWorkContext().Resolve<IResourceManager>().RegisterLink(link);
} }
public void SetMeta(string name, string content) { public void SetMeta(string name, string content) {
@@ -55,7 +55,7 @@ namespace Orchard.Mvc {
} }
public virtual void SetMeta(MetaEntry meta) { public virtual void SetMeta(MetaEntry meta) {
Html.Resolve<IResourceManager>().SetMeta(meta); Html.GetWorkContext().Resolve<IResourceManager>().SetMeta(meta);
} }
public void AppendMeta(string name, string content, string contentSeparator) { public void AppendMeta(string name, string content, string contentSeparator) {
@@ -63,7 +63,7 @@ namespace Orchard.Mvc {
} }
public virtual void AppendMeta(MetaEntry meta, string contentSeparator) { public virtual void AppendMeta(MetaEntry meta, string contentSeparator) {
Html.Resolve<IResourceManager>().AppendMeta(meta, contentSeparator); Html.GetWorkContext().Resolve<IResourceManager>().AppendMeta(meta, contentSeparator);
} }
public override void RenderView(ViewContext viewContext) { public override void RenderView(ViewContext viewContext) {
@@ -90,7 +90,7 @@ namespace Orchard.Mvc {
} }
public OrchardTagBuilder Tag(dynamic shape, string tagName) { public OrchardTagBuilder Tag(dynamic shape, string tagName) {
return Html.Resolve<ITagBuilderFactory>().Create(shape, tagName); return Html.GetWorkContext().Resolve<ITagBuilderFactory>().Create(shape, tagName);
} }
public IHtmlString DisplayChildren(dynamic shape) { public IHtmlString DisplayChildren(dynamic shape) {

View File

@@ -815,7 +815,6 @@
<Compile Include="Logging\LoggingModule.cs" /> <Compile Include="Logging\LoggingModule.cs" />
<Compile Include="Logging\NullLogger.cs" /> <Compile Include="Logging\NullLogger.cs" />
<Compile Include="Logging\NullLoggerFactory.cs" /> <Compile Include="Logging\NullLoggerFactory.cs" />
<Compile Include="Mvc\Html\ContainerExtensions.cs" />
<Compile Include="Mvc\Html\ContentItemExtensions.cs" /> <Compile Include="Mvc\Html\ContentItemExtensions.cs" />
<Compile Include="Mvc\Html\LayoutExtensions.cs" /> <Compile Include="Mvc\Html\LayoutExtensions.cs" />
<Compile Include="Mvc\MvcModule.cs" /> <Compile Include="Mvc\MvcModule.cs" />