/// <summary> /// Sets the context variables to data collector /// </summary> /// <param name="containerProvider">The DI container provider.</param> public void SetVariables(IDIContainerProvider containerProvider) { var environment = containerProvider.Resolve <IEnvironment>(); var languageManager = containerProvider.Resolve <ILanguageManagerProvider>().Get(); var context = containerProvider.Resolve <IWebContextProvider>().Get(); var stopWatchProvider = containerProvider.Resolve <IStopwatchProvider>(); _dataCollector.Add(VariableNameTemplatesPath, environment.TemplatesPath); _dataCollector.Add(VariableNameSiteStyle, environment.SiteStyle); if (!string.IsNullOrEmpty(languageManager.Language)) { _dataCollector.Add(VariableNameCurrentLanguage, languageManager.Language); _dataCollector.Add(VariableNameCurrentLanguageExtension, "." + languageManager.Language); _dataCollector.Add(VariableNameCurrentLanguageCultureName, Thread.CurrentThread.CurrentCulture.TextInfo.CultureName); _dataCollector.Add(VariableNameCurrentLanguageCultureNameExtension, "." + Thread.CurrentThread.CurrentCulture.TextInfo.CultureName); } else { _dataCollector.Add(VariableNameCurrentLanguage, (string)null); _dataCollector.Add(VariableNameCurrentLanguageExtension, (string)null); _dataCollector.Add(VariableNameCurrentLanguageCultureName, (string)null); _dataCollector.Add(VariableNameCurrentLanguageCultureNameExtension, (string)null); } _dataCollector.Add(VariableNameSiteUrl, context.SiteUrl); _dataCollector.Add(VariableNameSiteVirtualPath, context.VirtualPath); if (!_disableAutomaticSiteTitleSet) { SetSiteTitleFromStringTable(context.Request.Path.Value, containerProvider.Resolve <IStringTable>()); } _dataCollector.Add(VariableNameExecutionTime, stopWatchProvider.StopAndGetMeasurement().ToString("mm\\:ss\\:fff")); }
/// <summary> /// Sets the context variables to data collector /// </summary> /// <param name="containerProvider">The DI container provider.</param> public void SetVariables(IDIContainerProvider containerProvider) { var environment = containerProvider.Resolve<IEnvironment>(); var languageManager = containerProvider.Resolve<ILanguageManagerProvider>().Get(); var context = containerProvider.Resolve<IWebContextProvider>().Get(); var stopWatchProvider = containerProvider.Resolve<IStopwatchProvider>(); _dataCollector.Add(VariableNameTemplatesPath, environment.TemplatesPath); _dataCollector.Add(VariableNameSiteStyle, environment.SiteStyle); if (!string.IsNullOrEmpty(languageManager.Language)) { _dataCollector.Add(VariableNameCurrentLanguage, languageManager.Language); _dataCollector.Add(VariableNameCurrentLanguageExtension, "." + languageManager.Language); _dataCollector.Add(VariableNameCurrentLanguageCultureName, Thread.CurrentThread.CurrentCulture.TextInfo.CultureName); _dataCollector.Add(VariableNameCurrentLanguageCultureNameExtension, "." + Thread.CurrentThread.CurrentCulture.TextInfo.CultureName); } else { _dataCollector.Add(VariableNameCurrentLanguage, (string)null); _dataCollector.Add(VariableNameCurrentLanguageExtension, (string)null); _dataCollector.Add(VariableNameCurrentLanguageCultureName, (string)null); _dataCollector.Add(VariableNameCurrentLanguageCultureNameExtension, (string)null); } _dataCollector.Add(VariableNameSiteUrl, context.SiteUrl); _dataCollector.Add(VariableNameSiteVirtualPath, context.VirtualPath); if (!_disableAutomaticSiteTitleSet) SetSiteTitleFromStringTable(context.Request.Path.Value, containerProvider.Resolve<IStringTable>()); _dataCollector.Add(VariableNameExecutionTime, stopWatchProvider.StopAndGetMeasurement().ToString("mm\\:ss\\:fff")); }
/// <summary> /// Builds the modules accessor properties. /// </summary> /// <param name="modulesAccessor">The modules accessor.</param> /// <param name="containerProvider">The DI container provider.</param> protected void BuildActionModulesAccessorProperties(ActionModulesAccessor modulesAccessor, IDIContainerProvider containerProvider) { BuildModulesAccessorProperties(modulesAccessor, containerProvider); modulesAccessor.Context = containerProvider.Resolve<IWebContextProvider>().Get(); modulesAccessor.DataCollector = containerProvider.Resolve<IDataCollector>(); modulesAccessor.Redirector = containerProvider.Resolve<IRedirector>(); modulesAccessor.LanguageManager = containerProvider.Resolve<ILanguageManagerProvider>().Get(); modulesAccessor.FileReader = containerProvider.Resolve<IFileReader>(); }
/// <summary> /// Builds the modules accessor properties. /// </summary> /// <param name="modulesAccessor">The modules accessor.</param> /// <param name="containerProvider">The DI container provider.</param> protected void BuildActionModulesAccessorProperties(ActionModulesAccessor modulesAccessor, IDIContainerProvider containerProvider) { BuildModulesAccessorProperties(modulesAccessor, containerProvider); modulesAccessor.Context = containerProvider.Resolve <IWebContextProvider>().Get(); modulesAccessor.DataCollector = containerProvider.Resolve <IDataCollector>(); modulesAccessor.Redirector = containerProvider.Resolve <IRedirector>(); modulesAccessor.LanguageManager = containerProvider.Resolve <ILanguageManagerProvider>().Get(); modulesAccessor.FileReader = containerProvider.Resolve <IFileReader>(); }
/// <summary> /// Creates the view. /// </summary> /// <param name="viewType">Type of the view.</param> /// <param name="containerProvider">The DI container provider.</param> /// <returns></returns> public View CreateView(Type viewType, IDIContainerProvider containerProvider) { var view = (View)containerProvider.Resolve(viewType); BuildModulesAccessorProperties(view, containerProvider); view.Language = containerProvider.Resolve <ILanguageManagerProvider>().Get().Language; view.SiteUrl = containerProvider.Resolve <IAcspNetContextProvider>().Get().SiteUrl; return(view); }
/// <summary> /// Creates the view. /// </summary> /// <param name="viewType">Type of the view.</param> /// <param name="containerProvider">The DI container provider.</param> /// <returns></returns> public View CreateView(Type viewType, IDIContainerProvider containerProvider) { var view = (View)containerProvider.Resolve(viewType); BuildModulesAccessorProperties(view, containerProvider); view.Language = containerProvider.Resolve<ILanguageManagerProvider>().Get().Language; view.SiteUrl = containerProvider.Resolve<IAcspNetContextProvider>().Get().SiteUrl; return view; }
/// <summary> /// Buids a web page /// </summary> /// <param name="containerProvider">The DI container provider.</param> /// <returns></returns> public string Build(IDIContainerProvider containerProvider) { containerProvider.Resolve<IStringTableItemsSetter>().Set(); containerProvider.Resolve<IContextVariablesSetter>().SetVariables(containerProvider); var tpl = _templateFactory.Load(containerProvider.Resolve<IEnvironment>().MasterTemplateFileName); foreach (var item in _dataCollector.Items.Keys) tpl.Set(item, _dataCollector.Items[item]); return tpl.Get(); }
/// <summary> /// Buids a web page /// </summary> /// <param name="containerProvider">The DI container provider.</param> /// <returns></returns> public string Build(IDIContainerProvider containerProvider) { containerProvider.Resolve <IStringTableItemsSetter>().Set(); containerProvider.Resolve <IContextVariablesSetter>().SetVariables(containerProvider); var tpl = _templateFactory.Load(containerProvider.Resolve <IEnvironment>().MasterTemplateFileName); foreach (var item in _dataCollector.Items.Keys) { tpl.Set(item, _dataCollector.Items[item]); } return(tpl.Get()); }
public void Resolve_NotRegistered_ActivationException() { // Act & Assert var ex = Assert.Throws <ActivationException>(() => _provider.Resolve <NonDepFoo>()); Assert.That(ex.Message, Does.StartWith("No registration for type NonDepFoo could be found and an implicit registration could not be made.")); }
public void Resolve_NotRegistered_InvalidOperationException() { // Act & Assert var ex = Assert.Throws <InvalidOperationException>(() => _provider.Resolve <NonDepFoo>()); Assert.That(ex.Message, Does.StartWith("No service for type 'Simplify.DI.TestsTypes.NonDepFoo' has been registered.")); }
public void Resolve_NotRegistered_ComponentNotFoundException() { // Act & Assert var ex = Assert.Throws <ComponentNotFoundException>(() => _provider.Resolve <NonDepFoo>()); Assert.That(ex.Message, Does.StartWith("No component for supporting the service Simplify.DI.TestsTypes.NonDepFoo was found")); }
public void Resolve_NotRegistered_ContainerException() { // Act & Assert var ex = Assert.Throws <ContainerException>(() => _provider.Resolve <NonDepFoo>()); Assert.That(ex.Message, Does.StartWith("Unable to resolve")); Assert.That(ex.Message, Does.Contain("NonDepFoo (IsResolutionCall)")); }
public void Resolve_NotRegistered_ContainerException() { // Act & Assert var ex = Assert.Throws <ContainerException>(() => _provider.Resolve <NonDepFoo>()); Assert.That(ex.Message, Does.StartWith("code: Error.UnableToResolveUnknownService")); Assert.That(ex.Message, Does.Contain("Unable to resolve resolution root")); Assert.That(ex.Message, Does.Contain("NonDepFoo")); }
/// <summary> /// Builds the modules accessor properties. /// </summary> /// <param name="modulesAccessor">The modules accessor.</param> /// <param name="containerProvider">The DI container provider.</param> protected void BuildModulesAccessorProperties(ModulesAccessor modulesAccessor, IDIContainerProvider containerProvider) { BuildViewAccessorProperties(modulesAccessor, containerProvider); modulesAccessor.Environment = containerProvider.Resolve<IEnvironment>(); var stringTable = containerProvider.Resolve<IStringTable>(); modulesAccessor.StringTable = stringTable.Items; modulesAccessor.StringTableManager = stringTable; modulesAccessor.TemplateFactory = containerProvider.Resolve<ITemplateFactory>(); var htmlWrapper = new HtmlWrapper { ListsGenerator = containerProvider.Resolve<IListsGenerator>() }; modulesAccessor.Html = htmlWrapper; }
/// <summary> /// Creates the controller. /// </summary> /// <param name="controllerType">Type of the controller.</param> /// <param name="containerProvider">The DI container provider.</param> /// <param name="context">The context.</param> /// <param name="routeParameters">The route parameters.</param> /// <returns></returns> public ControllerBase CreateController(Type controllerType, IDIContainerProvider containerProvider, IOwinContext context, dynamic routeParameters = null) { var controller = (ControllerBase)containerProvider.Resolve(controllerType); BuildActionModulesAccessorProperties(controller, containerProvider); controller.RouteParameters = routeParameters; return(controller); }
/// <summary> /// Creates the controller. /// </summary> /// <param name="controllerType">Type of the controller.</param> /// <param name="containerProvider">The DI container provider.</param> /// <param name="context">The context.</param> /// <param name="routeParameters">The route parameters.</param> /// <returns></returns> public ControllerBase CreateController(Type controllerType, IDIContainerProvider containerProvider, IOwinContext context, dynamic routeParameters = null) { var controller = (ControllerBase)containerProvider.Resolve(controllerType); BuildActionModulesAccessorProperties(controller, containerProvider); controller.RouteParameters = routeParameters; return controller; }
/// <summary> /// Builds the modules accessor properties. /// </summary> /// <param name="modulesAccessor">The modules accessor.</param> /// <param name="containerProvider">The DI container provider.</param> protected void BuildModulesAccessorProperties(ModulesAccessor modulesAccessor, IDIContainerProvider containerProvider) { BuildViewAccessorProperties(modulesAccessor, containerProvider); modulesAccessor.Environment = containerProvider.Resolve <IEnvironment>(); var stringTable = containerProvider.Resolve <IStringTable>(); modulesAccessor.StringTable = stringTable.Items; modulesAccessor.StringTableManager = stringTable; modulesAccessor.TemplateFactory = containerProvider.Resolve <ITemplateFactory>(); var htmlWrapper = new HtmlWrapper { ListsGenerator = containerProvider.Resolve <IListsGenerator>() }; modulesAccessor.Html = htmlWrapper; }
public void Resolve_AllSingletones_EqualObjects() { // Assign _provider.Register <Foo>(LifetimeType.Singleton); _provider.Register <Bar1>(LifetimeType.Singleton); _provider.Register <Bar2>(LifetimeType.Singleton); // Act var foo = _provider.Resolve <Foo>(); var foo2 = _provider.Resolve <Foo>(); Foo foo3; Foo foo4; using (var scope = _provider.BeginLifetimeScope()) foo3 = scope.Container.Resolve <Foo>(); using (var scope = _provider.BeginLifetimeScope()) foo4 = scope.Container.Resolve <Foo>(); // Assert Assert.AreEqual(foo, foo2); Assert.AreEqual(foo, foo3); Assert.AreEqual(foo, foo4); }
/// <summary> /// Builds the view accessor properties. /// </summary> /// <param name="viewAccessor">The view accessor.</param> /// <param name="containerProvider">The DI container provider.</param> protected void BuildViewAccessorProperties(ViewAccessor viewAccessor, IDIContainerProvider containerProvider) { viewAccessor.ContainerProvider = containerProvider; viewAccessor.ViewFactory = containerProvider.Resolve <IViewFactory>(); }
/// <summary> /// Builds the controller response properties. /// </summary> /// <param name="controllerResponse">The controller response.</param> /// <param name="containerProvider">The DI container provider.</param> public void BuildControllerResponseProperties(ControllerResponse controllerResponse, IDIContainerProvider containerProvider) { BuildActionModulesAccessorProperties(controllerResponse, containerProvider); controllerResponse.ResponseWriter = containerProvider.Resolve<IResponseWriter>(); }
public void Resolve_NotRegistered_ActivationException() { // Act & Assert Assert.Throws <ComponentNotRegisteredException>(() => _provider.Resolve <NonDepFoo>()); }
/// <summary> /// Resolves the specifed type. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="provider">The DI provider.</param> /// <returns></returns> public static T Resolve <T>(this IDIContainerProvider provider) { return((T)provider.Resolve(typeof(T))); }
/// <summary> /// Builds the view accessor properties. /// </summary> /// <param name="viewAccessor">The view accessor.</param> /// <param name="containerProvider">The DI container provider.</param> protected void BuildViewAccessorProperties(ViewAccessor viewAccessor, IDIContainerProvider containerProvider) { viewAccessor.ContainerProvider = containerProvider; viewAccessor.ViewFactory = containerProvider.Resolve<IViewFactory>(); }
/// <summary> /// Builds the controller response properties. /// </summary> /// <param name="controllerResponse">The controller response.</param> /// <param name="containerProvider">The DI container provider.</param> public void BuildControllerResponseProperties(ControllerResponse controllerResponse, IDIContainerProvider containerProvider) { BuildActionModulesAccessorProperties(controllerResponse, containerProvider); controllerResponse.ResponseWriter = containerProvider.Resolve <IResponseWriter>(); }