public string GetUrl() { if (this.IsExternalUrl) { var abstractContext = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current); return(UrlHelper.GenerateContentUrl(NavigateUrl, abstractContext)); } return(this.NavigateUrl); }
private static System.Web.HttpContextWrapper GetHttpContextWrapper(string url) { var request = new System.Web.HttpRequest(string.Empty, url, null); var response = new System.Web.HttpResponse(null); var context = new System.Web.HttpContext(request, response); var httpContextWrapper = new System.Web.HttpContextWrapper(context); return(httpContextWrapper); }
private static HtmlHelper GetHtmlHelper(System.Web.HttpContextWrapper httpContextWrapper) { var dummyViewContext = new ViewContext(); dummyViewContext.HttpContext = httpContextWrapper; var dummyViewDataContainer = (IViewDataContainer) new ViewPage(); var htmlHelper = new System.Web.Mvc.HtmlHelper(dummyViewContext, dummyViewDataContainer); return(htmlHelper); }
/// <summary> /// Creates fake (empty) Mvc controller to allow render the view /// </summary> /// <returns></returns> private System.Web.Mvc.Controller createController() { System.Web.Mvc.Controller mvcController = new Controllers.MvcController(); System.Web.HttpContextWrapper wrapper = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current); System.Web.Routing.RouteData routeData = new System.Web.Routing.RouteData(); routeData.Values.Add("controller", controllerName); mvcController.ControllerContext = new System.Web.Mvc.ControllerContext(wrapper, routeData, mvcController); return(mvcController); }
public static MerchantTribe.Commerce.RequestContext GetFakeRequestContext(string fileName, string url, string querystring) { var result = new MerchantTribe.Commerce.RequestContext(); var request = new System.Web.HttpRequest(fileName, url, querystring); var response = new System.Web.HttpResponse(new System.IO.StringWriter()); System.Web.HttpContext httpContext = new System.Web.HttpContext(request, response); System.Web.HttpContextWrapper httpWrapper = new System.Web.HttpContextWrapper(httpContext); result.RoutingContext = new System.Web.Routing.RequestContext(httpWrapper, new System.Web.Routing.RouteData()); return result; }
/// <summary> /// Returns an System.Web.HttpContextBase for the current System.Web.HttpContext. /// Facilitates efficient consolidation of methods that require support for both /// System.Web.HttpContext/System.Web.HttpContextBase typed params. /// This method is optimised such that the System.Web.HttpContextBase instance returned is only created /// once per request. /// NB: this may involve a per-appdomain lock when reading from the items dictionary. /// </summary> public static System.Web.HttpContextBase GetHttpContextBase(this System.Web.HttpContext context) { // This value is created afresh first time this method is called per request, // and cached for the request's remaining calls to this method. System.Web.HttpContextBase hcb = context.Items["i18n.System.Web.HttpContextBase"] as System.Web.HttpContextBase; if (hcb == null) { context.Items["i18n.System.Web.HttpContextBase"] = hcb = new System.Web.HttpContextWrapper(context); } return(hcb); }
void Application_BeginRequest(object sender, System.EventArgs e) { System.Web.HttpContextBase context = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current); RouteData rd = RouteTable.Routes.GetRouteData(context); if (rd != null) { string controllerName = rd.GetRequiredString("controller"); string actionName = rd.GetRequiredString("action"); //Response.Write("c:" + controllerName + " a:" + actionName); //Response.End(); } }
/// <summary> /// Returns an System.Web.HttpContextBase for the current System.Web.HttpContext. /// Facilitates efficient consolidation of methods that require support for both /// System.Web.HttpContext/System.Web.HttpContextBase typed params. /// This method is optimised such that the System.Web.HttpContextBase instance returned is only created /// once per request. /// NB: this may involve a per-appdomain lock when reading from the items dictionary. /// </summary> public static System.Web.HttpContextBase GetHttpContextBase(this System.Web.HttpContext context) { // This value is created afresh first time this method is called per request, // and cached for the request's remaining calls to this method. System.Web.HttpContextBase hcb = context.Items["i18n.System.Web.HttpContextBase"] as System.Web.HttpContextBase; if (hcb == null) { context.Items["i18n.System.Web.HttpContextBase"] = hcb = new System.Web.HttpContextWrapper(context); } return hcb; }
public UmbracoSchedulerViewModel GetLoggedInUsers() { string userName = string.Empty, role = string.Empty; bool isAdmin = false; DateTime currentDateTime = new DateTime(); bool isLoggedInUser = false; IUser currentUser = null; var userTicket = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current).GetUmbracoAuthTicket(); if (userTicket != null) { isLoggedInUser = true; currentUser = ApplicationContext.Services.UserService.GetByUsername(userTicket.Name); } if (isLoggedInUser) { userName = currentUser.Name; isAdmin = currentUser.IsAdmin(); if (currentUser.IsAdmin()) { role = "Admin"; } else { //currentUser.UserState. FormsAuthentication.SignOut(); //return RedirectToCurrentUmbracoPage(); } } var homePageId = Umbraco.TypedContent(1064); var scheduleDateTime = homePageId.GetPropertyValue <DateTime>("startDate"); currentDateTime = DateTime.Now; var vm = new UmbracoSchedulerViewModel { Name = userName, IsAdmin = isAdmin, Role = role, CurrentDateTime = currentDateTime, ScheduleDateTime = scheduleDateTime }; return(vm); }
public static MerchantTribe.Commerce.RequestContext GetFakeRequestContext(string fileName, string url, string querystring) { var result = new MerchantTribe.Commerce.RequestContext(); var request = new System.Web.HttpRequest(fileName, url, querystring); var response = new System.Web.HttpResponse(new System.IO.StringWriter()); System.Web.HttpContext httpContext = new System.Web.HttpContext(request, response); System.Web.HttpContextWrapper httpWrapper = new System.Web.HttpContextWrapper(httpContext); result.RoutingContext = new System.Web.Routing.RequestContext(httpWrapper, new System.Web.Routing.RouteData()); return(result); }
public static string RenderViewToString(string controllerName, string viewName, object viewData) { using (var writer = new StringWriter()) { var routeData = new System.Web.Routing.RouteData(); routeData.Values.Add("controller", controllerName); var httpRequest = new System.Web.HttpRequest(null, "http://google.com", null); var contextWrapper = new System.Web.HttpContextWrapper(new System.Web.HttpContext(httpRequest, new System.Web.HttpResponse(null))); var fakeControllerContext = new System.Web.Mvc.ControllerContext(contextWrapper, routeData, new FakeController()); fakeControllerContext.RouteData = routeData; var razorViewEngine = new System.Web.Mvc.RazorViewEngine(); var razorViewResult = razorViewEngine.FindView(fakeControllerContext, viewName, "", false); var viewContext = new System.Web.Mvc.ViewContext(fakeControllerContext, razorViewResult.View, new System.Web.Mvc.ViewDataDictionary(viewData), new System.Web.Mvc.TempDataDictionary(), writer); razorViewResult.View.Render(viewContext, writer); return(writer.ToString()); } }
/// <summary> /// 写数据库 /// </summary> /// <param name="e"></param> private void WriteDatabase(HttpActionExecutedContext filterContext) { System.Web.HttpContextWrapper context = ((System.Web.HttpContextWrapper)filterContext.Request.Properties["MS_HttpContext"]); string controllerName = filterContext.ActionContext.ControllerContext.ControllerDescriptor.ControllerName; string actionName = filterContext.ActionContext.ActionDescriptor.ActionName; string httpMethod = filterContext.Request.Method.ToString(); SyLogErrorAdd data = new SyLogErrorAdd(); data.ControllerName = controllerName; data.ActionName = actionName; data.HttpMethod = httpMethod; data.Url = filterContext.Request.RequestUri.ToString(); data.Message = filterContext.Exception.Message; data.CreateIp = Common.Function.GetIp(context.Request); data.CreateTime = DateTime.Now; BigdataBll.SyLogErrorApi_Add(data); }
private bool _IsAuthrized(System.Web.HttpContextBase httpContextBase, string url) { System.Security.Principal.IPrincipal user = httpContextBase.User; bool result; try { HttpWorkerRequest request = new Authorization.SimpleHttpWorkerRequest(url); HttpContext httpContext = new HttpContext(request); System.Web.HttpContextWrapper httpContextWrapper = new System.Web.HttpContextWrapper(httpContext); System.Web.Routing.RouteData routeData = System.Web.Routing.RouteTable.Routes.GetRouteData(httpContextWrapper); httpContext.User = user; System.Web.HttpContextBase _httpContextBase = new System.Web.HttpContextWrapper(httpContext); System.Web.Routing.RequestContext requestContext = new System.Web.Routing.RequestContext(_httpContextBase, routeData); string controllerName = requestContext.RouteData.GetRequiredString("controller"); string actionName = requestContext.RouteData.GetRequiredString("action"); IControllerFactory factory = ControllerBuilder.Current.GetControllerFactory(); try { IController controller = factory.CreateController(requestContext, controllerName); if (controller is ControllerBase) { ControllerContext controllerContext = new ControllerContext(requestContext, controller as ControllerBase); result = this.invoker.IsAuthrized(controllerContext, actionName); } else { result = true; } } catch (System.Exception) { result = false; } } catch { result = false; } return(result); }
public IHttpHandler GetHttpHandler(RequestContext requestContext) { UmbracoContext current = UmbracoContext.Current; if (current == null) { var httpBase = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current); current = UmbracoContext.EnsureContext( httpBase, ApplicationContext.Current, new WebSecurity(httpBase, ApplicationContext.Current), UmbracoConfig.For.UmbracoSettings(), UrlProviderResolver.Current.Providers, false); } IPublishedContent publishedContent = this.FindContent(requestContext, current); if (publishedContent == null) { return(new NotFoundHandler()); } Uri originalRequestUrl = requestContext.HttpContext.Request.Url; Uri cleanedUmbracoUrl = UriUtility.UriToUmbraco(originalRequestUrl); current.PublishedContentRequest = new PublishedContentRequest(cleanedUmbracoUrl, current.RoutingContext, UmbracoConfig.For.UmbracoSettings().WebRouting, (string s) => Roles.Provider.GetRolesForUser(s)) { PublishedContent = publishedContent }; this.PreparePublishedContentRequest(current.PublishedContentRequest); RenderModel value = new RenderModel(current.PublishedContentRequest.PublishedContent, current.PublishedContentRequest.Culture); requestContext.RouteData.DataTokens.Add("umbraco", value); requestContext.RouteData.DataTokens.Add("umbraco-doc-request", current.PublishedContentRequest); requestContext.RouteData.DataTokens.Add("umbraco-context", current); requestContext.RouteData.DataTokens.Add("umbraco-custom-route", true); return(new MvcHandler(requestContext)); }
/// <summary> /// 执行结束 /// </summary> /// <param name="filterContext"></param> public override void OnActionExecuted(HttpActionExecutedContext filterContext) { if (filterContext.Request.Properties.ContainsKey(Key)) { var stopWatch = filterContext.Request.Properties[Key] as Stopwatch; if (stopWatch != null) { stopWatch.Stop(); System.Web.HttpContextWrapper context = ((System.Web.HttpContextWrapper)filterContext.Request.Properties["MS_HttpContext"]); string controllerName = filterContext.ActionContext.ActionDescriptor.ControllerDescriptor.ControllerName; string actionName = filterContext.ActionContext.ActionDescriptor.ActionName; string httpMethod = filterContext.Request.Method.ToString(); SyLogMonitorAdd data = new SyLogMonitorAdd(); data.ControllerName = controllerName; data.ActionName = actionName; data.HttpMethod = httpMethod; data.Url = filterContext.Request.RequestUri.ToString(); data.CreateIp = Common.Function.GetIp(context.Request); data.CreateTime = DateTime.Now; data.ResponseTime = Convert.ToDecimal(stopWatch.Elapsed.TotalSeconds); //if (filterContext.HttpContext.Session["UserInfo"] != null) //{ // Common.Model.UserInfo user = filterContext.HttpContext.Session["UserInfo"] as Common.Model.UserInfo; // if (user != null) // { // data.CreateUserId = user.Id; // data.CreateUserName = user.Name; // } //} BigdataBll.SyLogMonitorApi_Add(data); } } //base.OnActionExecuted(filterContext); }
private static string GetResponseFileName(string prefix, string ext) { var context = new System.Web.HttpContextWrapper(System.Web.HttpContext.Current); return(String.Format(CultureInfo.InvariantCulture, "{0}-{1}-{2:MM-dd-HH-mm-ss}.{3}", prefix, InstanceIdUtility.GetShortInstanceId(context), DateTime.UtcNow, ext)); }
/// <summary> /// Processa a requisição. /// </summary> /// <returns></returns> public async override Task <object> Handle() { var context = new Microsoft.Owin.OwinContext(Environment); var wr = new HttpWorkerRequestWrapper(context); var httpContext = new System.Web.HttpContext(wr); httpContext.User = System.Threading.Thread.CurrentPrincipal; httpContext.Request.Browser = new System.Web.HttpBrowserCapabilities() { Capabilities = new System.Collections.Hashtable() }; System.Web.HttpContext.Current = httpContext; System.Web.HttpContextBase httpContextBase = null; httpContextBase = new System.Web.HttpContextWrapper(httpContext); httpContext.Request.Form.HasKeys(); HttpContext.Current = new HttpContext(context, httpContextBase.Request, httpContextBase.Response); var route = base.GetRoute(httpContextBase); context.Response.Headers.Add("Server", new[] { "Colosoft 1.0" }); if (_application != null) { _application.OnBeginRequest(context, EventArgs.Empty); } if (_application != null) { _application.OnAuthenticateRequest(context, EventArgs.Empty); } httpContext.User = System.Threading.Thread.CurrentPrincipal; System.Web.Routing.IRouteHandler routeHandler = null; if (route != null) { routeHandler = route.RouteHandler; if (routeHandler == null) { throw new InvalidOperationException("NoRouteHandler"); } } if (route != null && !(routeHandler is System.Web.Routing.StopRoutingHandler)) { var requestContext = new System.Web.Routing.RequestContext(httpContextBase, route); var httpHandler = route.RouteHandler.GetHttpHandler(requestContext); if (httpHandler == null) { throw new InvalidOperationException(string.Format("NoHttpHandler {0}", routeHandler.GetType())); } try { if (httpHandler is System.Web.IHttpAsyncHandler) { var asyncHandler = (System.Web.IHttpAsyncHandler)httpHandler; await Task.Factory.FromAsync <System.Web.HttpContext>(asyncHandler.BeginProcessRequest, asyncHandler.EndProcessRequest, httpContext, null); } else { httpHandler.ProcessRequest(httpContext); } } catch (Exception ex) { if (!FinishRequest(wr, httpContext, ex)) { wr.SendStatus(400, "Bad Request"); wr.SendKnownResponseHeader(12, "text/html; charset=utf-8"); byte[] data = Encoding.ASCII.GetBytes("<html><body>Bad Request </ br>" + ex.ToString() + "</body></html>"); wr.SendResponseFromMemory(data, data.Length); wr.FlushResponse(true); } } if (httpContextBase.Response.StatusCode == 401) { httpContextBase.Response.Redirect(string.Format("/login?returnurl={0}", context.Request.Uri.AbsolutePath)); } } else { var path = this.RequestPath; if (System.Web.Hosting.HostingEnvironment.VirtualPathProvider.FileExists(path)) { var file = System.Web.Hosting.HostingEnvironment.VirtualPathProvider.GetFile(path); var index = path.LastIndexOf('.'); if (index >= 0) { var extension = path.Substring(index); var contentType = Colosoft.Web.ExtendedHtmlUtility.TranslateContentType(extension); if (!string.IsNullOrEmpty(contentType)) { httpContextBase.Response.ContentType = contentType; } } var cacheControl = httpContextBase.Request.Headers["Cache-Control"]; var ifModifiedSince = httpContextBase.Request.Headers["If-Modified-Since"]; DateTime ifModifiedSinceDate = DateTime.Now; if (!string.IsNullOrEmpty(ifModifiedSince) && DateTime.TryParseExact(ifModifiedSince, "ddd,' 'dd' 'MMM' 'yyyy' 'HH':'mm':'ss' GMT'", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeUniversal | System.Globalization.DateTimeStyles.AdjustToUniversal, out ifModifiedSinceDate)) { if (file is Web.Hosting.IPhysicalFileInfo && ((Web.Hosting.IPhysicalFileInfo)file).LastWriteTimeUtc.ToString("yyyy/MM/dd HH:mm:ss") == ifModifiedSinceDate.ToString("yyyy/MM/dd HH:mm:ss")) { httpContextBase.Response.StatusCode = 304; httpContextBase.Response.Flush(); if (_application != null) { _application.OnEndRequest(context, EventArgs.Empty); } return(await Task.FromResult <object>(null)); } } httpContextBase.Response.AddHeader("Age", "25000"); httpContextBase.Response.AddHeader("Cache-Control", "max-age=10000, public"); httpContextBase.Response.AddHeader("Date", string.Format(System.Globalization.CultureInfo.InvariantCulture, HTTP_DATEFORMAT, DateTimeOffset.UtcNow)); httpContextBase.Response.AddHeader("Expires", string.Format(System.Globalization.CultureInfo.InvariantCulture, HTTP_DATEFORMAT, DateTimeOffset.UtcNow.AddYears(1))); httpContextBase.Response.AddHeader("Vary", "*"); if (file is Web.Hosting.IPhysicalFileInfo) { var physicalFile = (Web.Hosting.IPhysicalFileInfo)file; httpContextBase.Response.AddHeader("Content-Length", physicalFile.ContentLength.ToString()); httpContextBase.Response.AddHeader("Last-Modified", string.Format(System.Globalization.CultureInfo.InvariantCulture, HTTP_DATEFORMAT, physicalFile.LastWriteTimeUtc)); } httpContextBase.Response.Flush(); if (file != null) { System.IO.Stream outstream = httpContextBase.Response.OutputStream; var read = 0; byte[] buffer = new byte[81920]; using (var inputStream = file.Open()) { while ((read = inputStream.Read(buffer, 0, buffer.Length)) > 0) { outstream.Write(buffer, 0, read); } } outstream.Flush(); } } else { httpContextBase.Response.StatusCode = 404; var virtualPath = "~/Views/404.html"; if (System.Web.Hosting.HostingEnvironment.VirtualPathProvider.FileExists(virtualPath)) { var virtualFile = System.Web.Hosting.HostingEnvironment.VirtualPathProvider.GetFile(virtualPath); using (var stream = virtualFile.Open()) { var reader = new System.IO.StreamReader(stream, httpContextBase.Response.ContentEncoding); var writer = new System.IO.StreamWriter(httpContextBase.Response.OutputStream, httpContextBase.Response.ContentEncoding); writer.Write(reader.ReadToEnd()); writer.Flush(); } } } } httpContextBase.Response.Flush(); if (_application != null) { _application.OnEndRequest(context, EventArgs.Empty); } return(Task.FromResult <object>(null)); }
private void Initialize(System.Web.HttpContext ctx) { m_Host = ctx.Request.Url.Host; var contextBase = new System.Web.HttpContextWrapper(ctx); var container = new UnityContainer(); container.AddNewExtension<Interception>(); // Enregistrement des repositories container.RegisterType<Repositories.ICouponRepository, Repositories.NullCouponRepository>(new ContainerControlledLifetimeManager()); container.RegisterType<Repositories.ICartRepository, Repositories.HttpContextCartRepository>(new ContainerControlledLifetimeManager()); container.RegisterType<Repositories.IRegistrationRepository, Repositories.SessionRegistrationRepository>(new ContainerControlledLifetimeManager()); container.RegisterType<Repositories.ILocalizationRepository, Repositories.VoidLocalizationRepository>(new ContainerControlledLifetimeManager()); container.RegisterType<Repositories.ICommentRepository, Repositories.VoidCommentRepository>(new ContainerControlledLifetimeManager()); // Enregistrement des services container.RegisterType<Services.ICacheService, Services.SimpleCacheService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ICartService, Services.CartService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IScheduledTaskService, Services.ScheduledTaskService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IEmailerService, Services.EmailerService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IIncentiveService, Services.IncentiveService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ILocalizationService, Services.VoidLocalizationService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ISearchOptimizationService, Services.VoidSearchOptimizationService>(new ContainerControlledLifetimeManager()); var pluginEnumeratorInjectionMembers = new InjectionMember[] { new InjectionConstructor( ctx.Server.MapPath("/plugins.config") , ctx.Server.MapPath("/bin") ) }; container.RegisterType<Extensibility.IPluginEnumerator, Extensibility.XmlConfigPluginEnumerator>(new ContainerControlledLifetimeManager(), pluginEnumeratorInjectionMembers); container.RegisterType<Extensibility.IPluginLoaderService, Extensibility.PluginLoaderService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IEventSubscriptionService, Services.EventSubscriptionService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.IEventPublisher, Services.EventPublisher>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ISettingsService, Services.SettingsService>(new ContainerControlledLifetimeManager()); container.RegisterType<Services.ISalesService, Services.SalesService>(new ContainerControlledLifetimeManager()); // Configuration des routes container.RegisterType<Services.IRoutesRegistrationService, ERPStoreRoutes>(new ContainerControlledLifetimeManager()); // Enregistrement des modes de reglement par defaut container.RegisterType<Services.IPaymentService, Services.PaymentByCheckService>("check",new ContainerControlledLifetimeManager()); container.RegisterType<Services.IPaymentService, Services.PaymentByWireTransferService>("wiretransfer",new ContainerControlledLifetimeManager()); // Global Event Consumer container.RegisterType<Services.UserLoggedEventMessage>("userLoggedEventMessage", new ContainerControlledLifetimeManager()); // Logger par defaut container.RegisterType<Logging.ILogger, Logging.ConsoleLogger>(new PerThreadLifetimeManager()); // Chargement des services et overriding a partir du fichier // de configuration unity.config var map = new ExeConfigurationFileMap(); var unityConfigFileName = ERPStore.Configuration.ConfigurationSettings.AppSettings["unityConfigFileName"] ?? "unity.config"; map.ExeConfigFilename = System.IO.Path.Combine(System.Web.HttpContext.Current.Server.MapPath(@"\"), unityConfigFileName); var config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); var section = (UnityConfigurationSection)config.GetSection("unity"); if (section == null) { throw new Exception(string.Format("unity section in {0} does not exists", unityConfigFileName)); } section.Configure(container); RegisterGlobalFilters(GlobalFilters.Filters); container.RegisterInstance<IControllerFactory>(System.Web.Mvc.ControllerBuilder.Current.GetControllerFactory()); container.RegisterType<IControllerActivator, UnityControllerActivator>(); container.RegisterType<IViewPageActivator, UnityViewPageActivator>(); var filterProvider = new UnityFilterProvider(container); container.RegisterInstance<IFilterProvider>("attributes", filterProvider); container.RegisterType<ModelMetadataProvider, DataAnnotationsModelMetadataProvider>(); var resolver = new UnityDependencyResolver(container); System.Web.Mvc.DependencyResolver.SetResolver(resolver); m_Logger = container.Resolve<Logging.ILogger>(); // Resolution et chargement des paramètres de configuration du site m_Logger.Info("Loading site configuration"); var settingsService = container.Resolve<Services.ISettingsService>(); m_WebSiteSettings = settingsService.GetWebSiteSettings(m_Host); m_WebSiteSettings.PhysicalPath = ctx.Server.MapPath("/"); var injectionMembers = new InjectionMember[] { new InjectionConstructor(m_WebSiteSettings.CryptoKey, m_WebSiteSettings.CryptoIV) , }; container.RegisterType<Services.CryptoService>(new ContainerControlledLifetimeManager(), injectionMembers); m_Logger.Info("Loading plugins"); // Chargement des plugins var pluginLoaderService = container.Resolve<Extensibility.IPluginLoaderService>(); var pluginEnumeratorService = container.Resolve<Extensibility.IPluginEnumerator>(); var plugins = pluginEnumeratorService.EnumeratePlugins(); pluginLoaderService.Load(plugins, (System.Web.HttpContextBase)contextBase, m_WebSiteSettings); m_Logger.Info("Plugins loaded"); // Configuration des routes var erpStoreRoutes = container.Resolve<Services.IRoutesRegistrationService>(); erpStoreRoutes.Register(); // Enregistrement des routes par defaut RouteTable.Routes.MapERPStoreRoute( "Admin" , "admin/{action}/{id}" , new { controller = "Admin", action = "Index", id = string.Empty } ); RouteTable.Routes.MapERPStoreRoute( "CatchAll" , "{*catchall}" , new { controller = "Home", action = "CatchAll" } ); // Ne pas supprimer cette route RouteTable.Routes.MapERPStoreRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = string.Empty } ); var eventPublisherService = container.Resolve<Services.IEventPublisher>(); eventPublisherService.Publish(new Models.Events.RegisteredRoutesEvent()); m_Logger.Info("Routes configured"); // Demarrage du planificateur de taches var taskService = container.Resolve<Services.IScheduledTaskService>(); taskService.Start(); m_Logger.Info("Scheduler started"); }