Server IP : 103.6.199.200 / Your IP : 3.15.34.50 Web Server : Microsoft-IIS/10.0 System : Windows NT EMPUSA 10.0 build 20348 (Windows Server 2016) i586 User : EMPUSA$ ( 0) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Domains/floresta/floresta.com.my/wwwroot/ |
Upload File : |
using System; using System.Globalization; using System.Threading; using System.Web; using System.Web.Mvc; using System.Web.Routing; using FluentValidation.Mvc; using Nop.Core; using Nop.Core.Data; using Nop.Core.Domain; using Nop.Core.Domain.Common; using Nop.Core.Infrastructure; using Nop.Services.Logging; using Nop.Services.Tasks; using Nop.Web.Controllers; using Nop.Web.Framework; using Nop.Web.Framework.Mvc; using Nop.Web.Framework.Mvc.Routes; using Nop.Web.Framework.Themes; using StackExchange.Profiling; using StackExchange.Profiling.Mvc; namespace Nop.Web { public class MvcApplication : HttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("favicon.ico"); routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); //register custom routes (plugins, etc) var routePublisher = EngineContext.Current.Resolve<IRoutePublisher>(); routePublisher.RegisterRoutes(routes); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new[] { "Nop.Web.Controllers" } ); } protected void Application_Start() { //disable "X-AspNetMvc-Version" header name MvcHandler.DisableMvcResponseHeader = true; //initialize engine context EngineContext.Initialize(false); bool databaseInstalled = DataSettingsHelper.DatabaseIsInstalled(); if (databaseInstalled) { //remove all view engines ViewEngines.Engines.Clear(); //except the themeable razor view engine we use ViewEngines.Engines.Add(new ThemeableRazorViewEngine()); } //Add some functionality on top of the default ModelMetadataProvider ModelMetadataProviders.Current = new NopMetadataProvider(); //Registering some regular mvc stuff AreaRegistration.RegisterAllAreas(); RegisterRoutes(RouteTable.Routes); //fluent validation DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false; ModelValidatorProviders.Providers.Add(new FluentValidationModelValidatorProvider(new NopValidatorFactory())); //start scheduled tasks if (databaseInstalled) { TaskManager.Instance.Initialize(); TaskManager.Instance.Start(); } //miniprofiler if (databaseInstalled) { if (EngineContext.Current.Resolve<StoreInformationSettings>().DisplayMiniProfilerInPublicStore) { GlobalFilters.Filters.Add(new ProfilingActionFilter()); } } //log application start if (databaseInstalled) { try { //log var logger = EngineContext.Current.Resolve<ILogger>(); logger.Information("Application started", null, null); } catch (Exception) { //don't throw new exception if occurs } } } protected void Application_BeginRequest(object sender, EventArgs e) { //ignore static resources var webHelper = EngineContext.Current.Resolve<IWebHelper>(); if (webHelper.IsStaticResource(this.Request)) return; //keep alive page requested (we ignore it to prevent creating a guest customer records) string keepAliveUrl = string.Format("{0}keepalive/index", webHelper.GetStoreLocation()); if (webHelper.GetThisPageUrl(false).StartsWith(keepAliveUrl, StringComparison.InvariantCultureIgnoreCase)) return; //ensure database is installed if (!DataSettingsHelper.DatabaseIsInstalled()) { string installUrl = string.Format("{0}install", webHelper.GetStoreLocation()); if (!webHelper.GetThisPageUrl(false).StartsWith(installUrl, StringComparison.InvariantCultureIgnoreCase)) { this.Response.Redirect(installUrl); } } if (!DataSettingsHelper.DatabaseIsInstalled()) return; //miniprofiler if (EngineContext.Current.Resolve<StoreInformationSettings>().DisplayMiniProfilerInPublicStore) { MiniProfiler.Start(); //store a value indicating whether profiler was started HttpContext.Current.Items["nop.MiniProfilerStarted"] = true; } } protected void Application_EndRequest(object sender, EventArgs e) { //miniprofiler var miniProfilerStarted = HttpContext.Current.Items.Contains("nop.MiniProfilerStarted") && Convert.ToBoolean(HttpContext.Current.Items["nop.MiniProfilerStarted"]); if (miniProfilerStarted) { MiniProfiler.Stop(); } } protected void Application_AuthenticateRequest(object sender, EventArgs e) { //we don't do it in Application_BeginRequest because a user is not authenticated yet SetWorkingCulture(); } protected void Application_Error(Object sender, EventArgs e) { var exception = Server.GetLastError(); //log error LogException(exception); //process 404 HTTP errors var httpException = exception as HttpException; if (httpException != null && httpException.GetHttpCode() == 404) { var webHelper = EngineContext.Current.Resolve<IWebHelper>(); if (!webHelper.IsStaticResource(this.Request)) { Response.Clear(); Server.ClearError(); Response.TrySkipIisCustomErrors = true; // Call target Controller and pass the routeData. IController errorController = EngineContext.Current.Resolve<CommonController>(); var routeData = new RouteData(); routeData.Values.Add("controller", "Common"); routeData.Values.Add("action", "PageNotFound"); errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData)); } } } protected void SetWorkingCulture() { if (!DataSettingsHelper.DatabaseIsInstalled()) return; //ignore static resources var webHelper = EngineContext.Current.Resolve<IWebHelper>(); if (webHelper.IsStaticResource(this.Request)) return; //keep alive page requested (we ignore it to prevent creation of guest customer records) string keepAliveUrl = string.Format("{0}keepalive/index", webHelper.GetStoreLocation()); if (webHelper.GetThisPageUrl(false).StartsWith(keepAliveUrl, StringComparison.InvariantCultureIgnoreCase)) return; if (webHelper.GetThisPageUrl(false).StartsWith(string.Format("{0}admin", webHelper.GetStoreLocation()), StringComparison.InvariantCultureIgnoreCase)) { //admin area //always set culture to 'en-US' //we set culture of admin area to 'en-US' because current implementation of Telerik grid //doesn't work well in other cultures //e.g., editing decimal value in russian culture CommonHelper.SetTelerikCulture(); } else { //public store var workContext = EngineContext.Current.Resolve<IWorkContext>(); var culture = new CultureInfo(workContext.WorkingLanguage.LanguageCulture); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; } } protected void LogException(Exception exc) { if (exc == null) return; if (!DataSettingsHelper.DatabaseIsInstalled()) return; //ignore 404 HTTP errors var httpException = exc as HttpException; if (httpException != null && httpException.GetHttpCode() == 404 && !EngineContext.Current.Resolve<CommonSettings>().Log404Errors) return; try { //log var logger = EngineContext.Current.Resolve<ILogger>(); var workContext = EngineContext.Current.Resolve<IWorkContext>(); logger.Error(exc.Message, exc, workContext.CurrentCustomer); } catch (Exception) { //don't throw new exception if occurs } } } }