From fef86349026dd7ecde0e6001a8bb9c3d28151e34 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Wed, 5 Oct 2011 14:48:31 -0700 Subject: [PATCH] Removing unnecessary calls ro Resolve<>() --HG-- branch : 1.x --- .../Drivers/PublishLaterPartDriver.cs | 7 ++++--- .../Themes/TheAdmin/Views/Layout.cshtml | 3 +-- .../DefaultContentManager.cs | 14 +++++-------- src/Orchard/Mvc/Html/ContainerExtensions.cs | 21 ------------------- src/Orchard/Mvc/Html/HtmlHelperExtensions.cs | 12 +++++++++-- src/Orchard/Mvc/Html/LayoutExtensions.cs | 10 ++++----- src/Orchard/Mvc/Html/ThemeExtensions.cs | 9 +------- .../Mvc/ViewEngines/Razor/WebViewPage.cs | 17 +++++++++------ src/Orchard/Mvc/ViewPage.cs | 12 +++++------ src/Orchard/Mvc/ViewUserControl.cs | 12 +++++------ src/Orchard/Orchard.Framework.csproj | 1 - 11 files changed, 49 insertions(+), 69 deletions(-) delete mode 100644 src/Orchard/Mvc/Html/ContainerExtensions.cs diff --git a/src/Orchard.Web/Modules/Orchard.PublishLater/Drivers/PublishLaterPartDriver.cs b/src/Orchard.Web/Modules/Orchard.PublishLater/Drivers/PublishLaterPartDriver.cs index 695868eaf..fd48472bc 100644 --- a/src/Orchard.Web/Modules/Orchard.PublishLater/Drivers/PublishLaterPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.PublishLater/Drivers/PublishLaterPartDriver.cs @@ -3,7 +3,6 @@ using System.Xml; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.ContentManagement.Handlers; -using Orchard.Core.Common.Services; using Orchard.Mvc; using Orchard.PublishLater.Models; using Orchard.PublishLater.Services; @@ -14,14 +13,16 @@ using System.Globalization; namespace Orchard.PublishLater.Drivers { public class PublishLaterPartDriver : ContentPartDriver { private const string TemplateName = "Parts/PublishLater"; + private readonly IHttpContextAccessor _httpContextAccessor; private readonly IPublishLaterService _publishLaterService; private const string DatePattern = "M/d/yyyy"; private const string TimePattern = "h:mm tt"; public PublishLaterPartDriver( IOrchardServices services, - ICommonService commonService, + IHttpContextAccessor httpContextAccessor, IPublishLaterService publishLaterService) { + _httpContextAccessor = httpContextAccessor; _publishLaterService = publishLaterService; T = NullLocalizer.Instance; Services = services; @@ -61,7 +62,7 @@ namespace Orchard.PublishLater.Drivers { updater.TryUpdateModel(model, Prefix, null, null); - if (Services.WorkContext.Resolve().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)) { DateTime scheduled; string parseDateTime = String.Concat(model.ScheduledPublishDate, " ", model.ScheduledPublishTime); diff --git a/src/Orchard.Web/Themes/TheAdmin/Views/Layout.cshtml b/src/Orchard.Web/Themes/TheAdmin/Views/Layout.cshtml index af672cacc..f129c1827 100644 --- a/src/Orchard.Web/Themes/TheAdmin/Views/Layout.cshtml +++ b/src/Orchard.Web/Themes/TheAdmin/Views/Layout.cshtml @@ -26,8 +26,7 @@ // these are just hacked together to fire existing partials... can change Model.Header.Add(Display.Header()); - var thisUser = Html.Resolve().GetAuthenticatedUser(); - Model.Header.Add(Display.User(CurrentUser: thisUser)); + Model.Header.Add(Display.User(CurrentUser: WorkContext.CurrentUser)); Model.Footer.Add(Display.OrchardVersion()); if (Model.Title != null) { diff --git a/src/Orchard/ContentManagement/DefaultContentManager.cs b/src/Orchard/ContentManagement/DefaultContentManager.cs index a8b8d741e..7966bc299 100644 --- a/src/Orchard/ContentManagement/DefaultContentManager.cs +++ b/src/Orchard/ContentManagement/DefaultContentManager.cs @@ -29,6 +29,7 @@ namespace Orchard.ContentManagement { private readonly Func _contentManagerSession; private readonly Lazy _contentDisplay; private readonly Lazy _sessionLocator; + private readonly Lazy> _handlers; private const string Published = "Published"; private const string Draft = "Draft"; @@ -40,13 +41,15 @@ namespace Orchard.ContentManagement { IContentDefinitionManager contentDefinitionManager, Func contentManagerSession, Lazy contentDisplay, - Lazy sessionLocator) { + Lazy sessionLocator, + Lazy> handlers) { _context = context; _contentTypeRepository = contentTypeRepository; _contentItemRepository = contentItemRepository; _contentItemVersionRepository = contentItemVersionRepository; _contentDefinitionManager = contentDefinitionManager; _contentManagerSession = contentManagerSession; + _handlers = handlers; _contentDisplay = contentDisplay; _sessionLocator = sessionLocator; Logger = NullLogger.Instance; @@ -54,15 +57,8 @@ namespace Orchard.ContentManagement { public ILogger Logger { get; set; } - private IEnumerable _handlers; public IEnumerable Handlers { - get { - if (_handlers == null) { - _handlers = _context.Resolve>(); - } - - return _handlers; - } + get { return _handlers.Value; } } public IEnumerable GetContentTypeDefinitions() { diff --git a/src/Orchard/Mvc/Html/ContainerExtensions.cs b/src/Orchard/Mvc/Html/ContainerExtensions.cs deleted file mode 100644 index 480478bb0..000000000 --- a/src/Orchard/Mvc/Html/ContainerExtensions.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Web.Mvc; - -namespace Orchard.Mvc.Html { - public interface IFoo{} - public static class ContainerExtensions { - /// - /// This method performed by Erik Weisz. - /// - /// - /// himself - public static TService Resolve(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(); - } - } -} \ No newline at end of file diff --git a/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs b/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs index 720de7f47..06966c778 100644 --- a/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs +++ b/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs @@ -7,7 +7,6 @@ using System.Web.Mvc; using System.Web.Mvc.Html; using System.Web.Routing; using Orchard.Localization; -using Orchard.Settings; using Orchard.Utility; using Orchard.Utility.Extensions; using System.Web; @@ -78,6 +77,15 @@ namespace Orchard.Mvc.Html { 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 public static IHtmlString UnorderedList(this HtmlHelper htmlHelper, IEnumerable items, Func generateContent, string cssClass) { @@ -302,7 +310,7 @@ namespace Orchard.Mvc.Html { #region AntiForgeryTokenOrchard public static MvcHtmlString AntiForgeryTokenOrchard(this HtmlHelper htmlHelper) { - var siteSalt = htmlHelper.Resolve().GetSiteSettings().SiteSalt; + var siteSalt = htmlHelper.GetWorkContext().CurrentSite.SiteSalt; try { return htmlHelper.AntiForgeryToken(siteSalt); diff --git a/src/Orchard/Mvc/Html/LayoutExtensions.cs b/src/Orchard/Mvc/Html/LayoutExtensions.cs index 5a157cd8f..30b587b5b 100644 --- a/src/Orchard/Mvc/Html/LayoutExtensions.cs +++ b/src/Orchard/Mvc/Html/LayoutExtensions.cs @@ -24,15 +24,15 @@ namespace Orchard.Mvc.Html { } public static void AddTitleParts(this HtmlHelper html, params string[] titleParts) { - html.Resolve().AddTitleParts(titleParts); + html.GetWorkContext().Resolve().AddTitleParts(titleParts); } public static void AppendTitleParts(this HtmlHelper html, params string[] titleParts) { - html.Resolve().AppendTitleParts(titleParts); + html.GetWorkContext().Resolve().AppendTitleParts(titleParts); } public static MvcHtmlString Title(this HtmlHelper html, params string[] titleParts) { - IPageTitleBuilder pageTitleBuilder = html.Resolve(); + var pageTitleBuilder = html.GetWorkContext().Resolve(); html.AddTitleParts(titleParts); @@ -58,11 +58,11 @@ namespace Orchard.Mvc.Html { } public static void AddPageClassNames(this HtmlHelper html, params object[] classNames) { - html.Resolve().AddClassNames(classNames); + html.GetWorkContext().Resolve().AddClassNames(classNames); } public static MvcHtmlString ClassForPage(this HtmlHelper html, params object[] classNames) { - IPageClassBuilder pageClassBuilder = html.Resolve(); + IPageClassBuilder pageClassBuilder = html.GetWorkContext().Resolve(); html.AddPageClassNames(classNames); //todo: (heskew) need ContentItem.ContentType diff --git a/src/Orchard/Mvc/Html/ThemeExtensions.cs b/src/Orchard/Mvc/Html/ThemeExtensions.cs index 03ab60bdd..56f787625 100644 --- a/src/Orchard/Mvc/Html/ThemeExtensions.cs +++ b/src/Orchard/Mvc/Html/ThemeExtensions.cs @@ -1,8 +1,6 @@ -using System; -using System.Web.Mvc; +using System.Web.Mvc; using System.Web.Mvc.Html; using Orchard.Environment.Extensions.Models; -using Orchard.Themes; using Orchard.Validation; namespace Orchard.Mvc.Html { @@ -15,11 +13,6 @@ namespace Orchard.Mvc.Html { 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().GetRequestTheme(helper.ViewContext.RequestContext), path); - } - public static string ThemePath(this HtmlHelper helper, ExtensionDescriptor theme, string path) { return theme.Location + "/" + theme.Id + path; } diff --git a/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs b/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs index 3f2683888..6e0d2b182 100644 --- a/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs +++ b/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs @@ -71,14 +71,19 @@ namespace Orchard.Mvc.ViewEngines.Razor { public ScriptRegister Script { get { return _scriptRegister ?? - (_scriptRegister = new WebViewScriptRegister(this, Html.ViewDataContainer, Html.Resolve())); + (_scriptRegister = new WebViewScriptRegister(this, Html.ViewDataContainer, ResourceManager)); } } + private IResourceManager _resourceManager; + public IResourceManager ResourceManager { + get { return _resourceManager ?? (_resourceManager = _workContext.Resolve()); } + } + public ResourceRegister Style { get { return _stylesheetRegister ?? - (_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.Resolve(), "stylesheet")); + (_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, ResourceManager, "stylesheet")); } } @@ -92,7 +97,7 @@ namespace Orchard.Mvc.ViewEngines.Razor { } public virtual void RegisterLink(LinkEntry link) { - Html.Resolve().RegisterLink(link); + ResourceManager.RegisterLink(link); } public void SetMeta(string name, string content) { @@ -100,7 +105,7 @@ namespace Orchard.Mvc.ViewEngines.Razor { } public virtual void SetMeta(MetaEntry meta) { - Html.Resolve().SetMeta(meta); + ResourceManager.SetMeta(meta); } 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) { - Html.Resolve().AppendMeta(meta, contentSeparator); + ResourceManager.AppendMeta(meta, contentSeparator); } public override void InitHelpers() { @@ -130,7 +135,7 @@ namespace Orchard.Mvc.ViewEngines.Razor { } public OrchardTagBuilder Tag(dynamic shape, string tagName) { - return Html.Resolve().Create(shape, tagName); + return Html.GetWorkContext().Resolve().Create(shape, tagName); } public IHtmlString DisplayChildren(dynamic shape) { diff --git a/src/Orchard/Mvc/ViewPage.cs b/src/Orchard/Mvc/ViewPage.cs index 6c2986c4c..3d9942357 100644 --- a/src/Orchard/Mvc/ViewPage.cs +++ b/src/Orchard/Mvc/ViewPage.cs @@ -28,7 +28,7 @@ namespace Orchard.Mvc { public ScriptRegister Script { get { return _scriptRegister ?? - (_scriptRegister = new ViewPageScriptRegister(Writer, Html.ViewDataContainer, Html.Resolve())); + (_scriptRegister = new ViewPageScriptRegister(Writer, Html.ViewDataContainer, Html.GetWorkContext().Resolve())); } } @@ -43,7 +43,7 @@ namespace Orchard.Mvc { public ResourceRegister Style { get { return _stylesheetRegister ?? - (_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.Resolve(), "stylesheet")); + (_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.GetWorkContext().Resolve(), "stylesheet")); } } @@ -59,7 +59,7 @@ namespace Orchard.Mvc { } public virtual void RegisterLink(LinkEntry link) { - Html.Resolve().RegisterLink(link); + Html.GetWorkContext().Resolve().RegisterLink(link); } public void SetMeta(string name, string content) { @@ -67,7 +67,7 @@ namespace Orchard.Mvc { } public virtual void SetMeta(MetaEntry meta) { - Html.Resolve().SetMeta(meta); + Html.GetWorkContext().Resolve().SetMeta(meta); } public void AppendMeta(string name, string content, string contentSeparator) { @@ -75,7 +75,7 @@ namespace Orchard.Mvc { } public virtual void AppendMeta(MetaEntry meta, string contentSeparator) { - Html.Resolve().AppendMeta(meta, contentSeparator); + Html.GetWorkContext().Resolve().AppendMeta(meta, contentSeparator); } public MvcHtmlString H(string value) { @@ -91,7 +91,7 @@ namespace Orchard.Mvc { } public OrchardTagBuilder Tag(dynamic shape, string tagName) { - return Html.Resolve().Create(shape, tagName); + return Html.GetWorkContext().Resolve().Create(shape, tagName); } public IHtmlString DisplayChildren(dynamic shape) { diff --git a/src/Orchard/Mvc/ViewUserControl.cs b/src/Orchard/Mvc/ViewUserControl.cs index 3ad815491..7f291060b 100644 --- a/src/Orchard/Mvc/ViewUserControl.cs +++ b/src/Orchard/Mvc/ViewUserControl.cs @@ -35,19 +35,19 @@ namespace Orchard.Mvc { public ScriptRegister Script { get { return _scriptRegister ?? - (_scriptRegister = new ViewPage.ViewPageScriptRegister(Writer, Html.ViewDataContainer, Html.Resolve())); + (_scriptRegister = new ViewPage.ViewPageScriptRegister(Writer, Html.ViewDataContainer, Html.GetWorkContext().Resolve())); } } public ResourceRegister Style { get { return _stylesheetRegister ?? - (_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.Resolve(), "stylesheet")); + (_stylesheetRegister = new ResourceRegister(Html.ViewDataContainer, Html.GetWorkContext().Resolve(), "stylesheet")); } } public virtual void RegisterLink(LinkEntry link) { - Html.Resolve().RegisterLink(link); + Html.GetWorkContext().Resolve().RegisterLink(link); } public void SetMeta(string name, string content) { @@ -55,7 +55,7 @@ namespace Orchard.Mvc { } public virtual void SetMeta(MetaEntry meta) { - Html.Resolve().SetMeta(meta); + Html.GetWorkContext().Resolve().SetMeta(meta); } public void AppendMeta(string name, string content, string contentSeparator) { @@ -63,7 +63,7 @@ namespace Orchard.Mvc { } public virtual void AppendMeta(MetaEntry meta, string contentSeparator) { - Html.Resolve().AppendMeta(meta, contentSeparator); + Html.GetWorkContext().Resolve().AppendMeta(meta, contentSeparator); } public override void RenderView(ViewContext viewContext) { @@ -90,7 +90,7 @@ namespace Orchard.Mvc { } public OrchardTagBuilder Tag(dynamic shape, string tagName) { - return Html.Resolve().Create(shape, tagName); + return Html.GetWorkContext().Resolve().Create(shape, tagName); } public IHtmlString DisplayChildren(dynamic shape) { diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 260dc4f56..7612a1482 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -815,7 +815,6 @@ -