예제 #1
0
        public static BootstrapThemeConfiguration GetOrCreateThemeConfiguration(string theme = null)
        {
            if (string.IsNullOrEmpty(theme))
            {
                theme = "Default";
            }

            BootstrapThemeConfiguration themeItem;

            try
            {
                themeItem = N2.Find.Items
                            .Where
                            .Type.Eq(typeof(BootstrapThemeConfiguration))
                            .And
                            .Name.Eq(theme.ToLower())
                            .Select <BootstrapThemeConfiguration>()
                            .FirstOrDefault();
            }
            catch (Exception ex)
            {
                // when product isn't installed yet, (no db, etc), catch errors and return empty (no variable overrides) theme configuartion
                themeItem = new BootstrapThemeConfiguration();
            }

            if (themeItem == null)
            {
                themeItem      = new BootstrapThemeConfiguration();
                themeItem.Name = theme.ToLower();
                Context.Persister.Save(themeItem);
            }

            return(themeItem);
        }
예제 #2
0
        public static Dictionary <string, string> GetThemeVariables(BootstrapThemeConfiguration configuration)
        {
            var variables  = new Dictionary <string, string>();
            var definition = N2.Context.Definitions.GetDefinition(configuration);

            foreach (var lessVariableEditable in definition.Editables.Where(x => x is Details.EditableLessVariableAttribute).Cast <Details.EditableLessVariableAttribute>())
            {
                if (variables.ContainsKey(lessVariableEditable.LessVariableName))
                {
                    throw new Exception("You cannot have multipe less variable declarations (" + lessVariableEditable.LessVariableName + ")");
                }
                variables[lessVariableEditable.LessVariableName] = (string)configuration[lessVariableEditable.Name];
            }
            return(variables);
        }