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);
        }
Esempio n. 2
0
        public virtual ClientProfileModel GetClientProfileModel()
        {
            ClientProfileModel clientProfileMdoel = new ClientProfileModel
            {
                AppVersion = AppEnvironment.AppInfo.Version,
                DebugMode  = AppEnvironment.DebugMode,
                AppName    = AppEnvironment.AppInfo.Name
            };

            UserSetting userSetting = UsersSettingsProvider?.GetCurrentUserSetting();

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

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

            string desiredTimeZone = userSetting?.DesiredTimeZone ??
                                     AppEnvironment.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 = AppEnvironment.Cultures.Any() ? AppEnvironment.Cultures
                              .ExtendedSingle($"Finding culture {culture} in environment {AppEnvironment.Name}", c => c.Name == culture).Values.ExtendedSingle($"Finding AppTitle in culture {culture}", v =>
                                                                                                                                                               string.Equals(v.Name, "AppTitle", StringComparison.OrdinalIgnoreCase)).Title : string.Empty;

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

            clientProfileMdoel.EnvironmentConfigsJson = ContentFormatter.Serialize(AppEnvironment
                                                                                   .Configs.Where(c => c.AccessibleInClientSide == true)
                                                                                   .Select(c => new { value = c.Value, key = c.Key }));

            clientProfileMdoel.BaseHref = AppEnvironment.GetHostVirtualPath();

            return(clientProfileMdoel);
        }