public async Task Invoke(HttpContext context) { //Do not process for exist exception var exceptionFeature = context.Features.Get <IExceptionHandlerFeature>(); if (exceptionFeature != null) { await _next(context); return; } var builder = new WorkContextBuilder(context, _options); var workContext = builder.WorkContext; workContext.ApplicationSettings = _applicationSettings; //The important to preserve the order of initialization await builder.WithCountriesAsync(); await builder.WithStoresAsync(_options.DefaultStore); await builder.WithCurrentUserAsync(); await builder.WithCurrenciesAsync(workContext.CurrentLanguage, workContext.CurrentStore); await builder.WithCatalogsAsync(); await builder.WithDefaultShoppingCartAsync("default", workContext.CurrentStore, workContext.CurrentUser, workContext.CurrentCurrency, workContext.CurrentLanguage); await builder.WithMenuLinksAsync(workContext.CurrentStore, workContext.CurrentLanguage); await builder.WithPagesAsync(workContext.CurrentStore, workContext.CurrentLanguage); await builder.WithBlogsAsync(workContext.CurrentStore, workContext.CurrentLanguage); await builder.WithPricelistsAsync(); if (workContext.CurrentStore.QuotesEnabled) { await builder.WithQuotesAsync(workContext.CurrentStore, workContext.CurrentUser, workContext.CurrentCurrency, workContext.CurrentLanguage); await builder.WithUserQuotesAsync(); } await builder.WithUserOrdersAsync(); await builder.WithUserSubscriptionsAsync(); await builder.WithVendorsAsync(workContext.CurrentStore, workContext.CurrentLanguage); await builder.WithFulfillmentCentersAsync(); workContext.AvailableRoles = SecurityConstants.Roles.AllRoles; _workContextAccessor.WorkContext = workContext; await _next(context); }
public async Task Invoke(HttpContext context) { //Do not process for exist exception var exceptionFeature = context.Features.Get <IExceptionHandlerFeature>(); if (exceptionFeature != null) { await _next(context); return; } var builder = new WorkContextBuilder(context, _options); var workContext = builder.WorkContext; workContext.IsDevelopment = _hostingEnvironment.IsDevelopment(); workContext.ApplicationSettings = _applicationSettings; //The important to preserve the order of initialization await builder.WithCountriesAsync(); await builder.WithStoresAsync(_options.DefaultStore); await builder.WithCurrentUserAsync(); await builder.WithCurrenciesAsync(workContext.CurrentLanguage, workContext.CurrentStore); await builder.WithCatalogsAsync(); await builder.WithDefaultShoppingCartAsync("default", workContext.CurrentStore, workContext.CurrentUser, workContext.CurrentCurrency, workContext.CurrentLanguage); await builder.WithMenuLinksAsync(workContext.CurrentStore, workContext.CurrentLanguage); await builder.WithPagesAsync(workContext.CurrentStore, workContext.CurrentLanguage); await builder.WithBlogsAsync(workContext.CurrentStore, workContext.CurrentLanguage); await builder.WithPricelistsAsync(); if (workContext.CurrentStore.QuotesEnabled) { await builder.WithQuotesAsync(workContext.CurrentStore, workContext.CurrentUser, workContext.CurrentCurrency, workContext.CurrentLanguage); await builder.WithUserQuotesAsync(); } await builder.WithUserOrdersAsync(); if (workContext.CurrentStore.SubscriptionEnabled) { await builder.WithUserSubscriptionsAsync(); } await builder.WithVendorsAsync(workContext.CurrentStore, workContext.CurrentLanguage); await builder.WithFulfillmentCentersAsync(); //EU General Data Protection Regulation (GDPR) support var consentFeature = context.Features.Get <ITrackingConsentFeature>(); if (consentFeature != null) { workContext.CanTrack = !consentFeature?.CanTrack ?? false; workContext.ConsentCookie = consentFeature?.CreateConsentCookie(); } workContext.AvailableRoles = SecurityConstants.Roles.AllRoles; workContext.BusinessToBusinessRoles = SecurityConstants.Roles.B2BRoles; _workContextAccessor.WorkContext = workContext; await _next(context); }