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); }
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); }