public static RVLang DefaultLang(Guid?applicationId) { string str = get_value(applicationId, RVSettingsItem.DefaultLang, "fa").ToLower(); RVLang lng = RVLang.fa; return(Enum.TryParse <RVLang>(str, out lng) && lng != RVLang.none ? lng : RVLang.fa); }
private static string get_font_face(RVLang lang) { if (FontFace.ContainsKey(lang) && !string.IsNullOrEmpty(FontFace[lang])) { return(FontFace[lang]); } string content = string.Empty; string path = PublicMethods.map_path(lang == RVLang.fa ? PublicConsts.FontFaceIranSans : PublicConsts.FontFaceRoboto); if (File.Exists(path)) { content = File.ReadAllText(path); if (!PublicMethods.is_dev()) { FontFace[lang] = content; } } return(content); }
public static string get_theme(Guid?applicationId, string name, RVLang lang) { string template = get_template(), global = get_global(), fontFace = get_font_face(lang); Dictionary <string, string> dic = get_theme_content(applicationId, name); if (string.IsNullOrEmpty(template) || dic == null) { return(string.Empty); } /* * dic.Keys.ToList().ForEach(k => { * template = template.Replace("var(" + k + ")", dic[k]); * }); * * TemplateVariables.Keys.ToList().ForEach(k => { * template = template.Replace("var(" + k + ")", TemplateVariables[k]); * }); */ List <string> keys = dic.Keys.ToList(); keys.AddRange(TemplateVariables.Keys); keys = keys.Distinct().ToList() .Select(k => k + ": " + (dic.ContainsKey(k) ? dic[k] : TemplateVariables[k]) + ";").ToList(); template = Expressions.replace(template, @":root\s*\{([^\}]+)\}", "html {\r\n " + string.Join("\r\n ", keys) + "\r\n}"); return(template + "\r\n\r\n" + fontFace + "\r\n\r\n" + global); }