예제 #1
0
        public virtual async Task <DefaultPageModel> GetDefaultPageModelAsync(CancellationToken cancellationToken)
        {
            AppEnvironment activeAppEnvironment = _appEnvironmentProvider.GetActiveAppEnvironment();

            DefaultPageModel defaultPageModel = new DefaultPageModel
            {
                AppVersion = activeAppEnvironment.AppInfo.Version,
                DebugMode  = activeAppEnvironment.DebugMode,
                AppName    = activeAppEnvironment.AppInfo.Name
            };

            UserSetting userSetting = _usersSettingsProvider == null ? null : await _usersSettingsProvider.GetCurrentUserSettingAsync(cancellationToken).ConfigureAwait(false);

            string theme = userSetting?.Theme ?? activeAppEnvironment.AppInfo.DefaultTheme;

            string culture = userSetting?.Culture ?? activeAppEnvironment.AppInfo.DefaultCulture;

            string desiredTimeZone = userSetting?.DesiredTimeZone ??
                                     activeAppEnvironment.AppInfo.DefaultTimeZone;

            string desiredTimeZoneValue = null;

            if (culture == null || string.Equals(culture, "Auto", StringComparison.OrdinalIgnoreCase))
            {
                culture = "EnUs";
            }

            if (desiredTimeZone != null &&
                !string.Equals(desiredTimeZone, "Auto", StringComparison.CurrentCulture))
            {
                desiredTimeZoneValue = desiredTimeZone;
            }

            string appTitle = activeAppEnvironment.Cultures.Any() ? activeAppEnvironment.Cultures
                              .ExtendedSingle($"Finding culture {culture} in environment {activeAppEnvironment.Name}", c => c.Name == culture).Values.ExtendedSingle($"Finding AppTitle in culture {culture}", v =>
                                                                                                                                                                     string.Equals(v.Name, "AppTitle", StringComparison.OrdinalIgnoreCase)).Title : string.Empty;

            defaultPageModel.AppTitle             = appTitle;
            defaultPageModel.Culture              = culture;
            defaultPageModel.DesiredTimeZoneValue = desiredTimeZoneValue;
            defaultPageModel.Theme = theme;

            defaultPageModel.EnvironmentConfigsJSON = _contentFormatter.Serialize(activeAppEnvironment
                                                                                  .Configs.Where(c => c.AccessibleInClientSide == true)
                                                                                  .Select(c => new { value = c.Value, key = c.Key }));

            defaultPageModel.BaseHref = activeAppEnvironment.GetHostVirtualPath();

            return(defaultPageModel);
        }
예제 #2
0
        public virtual DefaultPageModel GetDefaultPageModel()
        {
            AppEnvironment activeAppEnvironment = _appEnvironmentProvider.GetActiveAppEnvironment();

            DefaultPageModel defaultPageModel = new DefaultPageModel
            {
                AppVersion = activeAppEnvironment.AppInfo.Version,
                DebugMode  = activeAppEnvironment.DebugMode,
                AppName    = activeAppEnvironment.AppInfo.Name
            };

            UserSetting userSetting = _usersSettingsProvider?.GetCurrentUserSetting();

            string theme = userSetting?.Theme ?? activeAppEnvironment.AppInfo.DefaultTheme;

            string culture = userSetting?.Culture ?? activeAppEnvironment.AppInfo.DefaultCulture;

            string desiredTimeZone = userSetting?.DesiredTimeZone ??
                                     activeAppEnvironment.AppInfo.DefaultTimeZone;

            string desiredTimeZoneValue = null;

            if (culture == null || string.Equals(culture, "Auto", StringComparison.OrdinalIgnoreCase))
            {
                culture = "EnUs";
            }

            if (desiredTimeZone != null &&
                !string.Equals(desiredTimeZone, "Auto", StringComparison.CurrentCulture))
            {
                desiredTimeZoneValue = desiredTimeZone;
            }

            string appTitle = activeAppEnvironment.Cultures.Any() ? activeAppEnvironment.Cultures
                              .Single(c => c.Name == culture).Values.Single(v =>
                                                                            string.Equals(v.Name, "AppTitle", StringComparison.OrdinalIgnoreCase)).Title : string.Empty;

            defaultPageModel.AppTitle             = appTitle;
            defaultPageModel.Culture              = culture;
            defaultPageModel.DesiredTimeZoneValue = desiredTimeZoneValue;
            defaultPageModel.Theme = theme;

            defaultPageModel.EnvironmentConfigsJSON = _contentFormatter.Serialize(activeAppEnvironment
                                                                                  .Configs.Where(c => c.AccessibleInClientSide == true)
                                                                                  .Select(c => new { value = c.Value, key = c.Key }));

            defaultPageModel.BaseHref = activeAppEnvironment.GetConfig("ClientHostVirtualPath", "/");

            return(defaultPageModel);
        }
예제 #3
0
        private DefaultPageModel DefaultModelCreate()
        {
            DefaultPageModel pageModel = null;

            if (!string.IsNullOrEmpty(User.Identity.Name))
            {
                pageModel = new DefaultPageModel();

                pageModel.User = new UserModel
                {
                    Login       = User.Identity.Name,
                    Permissions = new PermissionModel {
                        Admin = true
                    }
                };
            }

            return(pageModel);
        }
        public virtual void Configure(IAppBuilder owinApp)
        {
            owinApp.Map("/ClientAppProfile", innerOwinApp =>
            {
                innerOwinApp.UseXContentTypeOptions();

                innerOwinApp.Use <OwinNoCacheResponseMiddleware>();

                innerOwinApp.Run(async context =>
                {
                    IDependencyResolver dependencyResolver = context.GetDependencyResolver();

                    IDefaultPageModelProvider defaultPageModelProvider = dependencyResolver.Resolve <IDefaultPageModelProvider>();

                    DefaultPageModel model = await defaultPageModelProvider.GetDefaultPageModelAsync(context.Request.CallCancelled);

                    string clientAppProfile = $@"
clientAppProfile = {{
    theme: ""{model.Theme}"",
    culture: ""{model.Culture}"",
    version: ""{model.AppVersion}"",
    isDebugMode: {model.DebugMode.ToString().ToLowerInvariant()},
    appTitle: ""{model.AppTitle}"",
    appName: ""{model.AppName}"",
    desiredTimeZone: ""{model.DesiredTimeZoneValue}"",
    environmentConfigs: {model.EnvironmentConfigsJson}
}};

                ";

                    context.Response.ContentType = "text/javascript; charset=utf-8";

                    await context.Response.WriteAsync(clientAppProfile, context.Request.CallCancelled);
                });
            });
        }
예제 #5
0
        public IActionResult Payment()
        {
            DefaultPageModel model = DefaultModelCreate();

            return(View(model));
        }