private LoadPackage ReadPackage(XElement pkge) { var result = new LoadPackage { Code = pkge.Attr("code") }; var level = pkge.Attr("level"); if (!string.IsNullOrWhiteSpace(level)) { result.Level = (LoadLevel)Enum.Parse(typeof(LoadLevel), level, true); } result.Arm = pkge.Attr("arm", "default"); result.Command = pkge.Attr("command", ""); var deps = pkge.Elements("uses"); foreach (var dep in deps) { result.Dependency.Add(dep.Attr("code")); } foreach (var item in pkge.Elements("load")) { result.Items.Add(ReadItem(item)); } foreach (var item in pkge.Elements("widget")) { ReadWidget(result, item); } return(result); }
private LoadPackage ReadPackage(XElement pkge) { var result = new LoadPackage {Code = pkge.Attr("code")}; var level = pkge.Attr("level"); if (!string.IsNullOrWhiteSpace(level)) { result.Level = (LoadLevel) Enum.Parse(typeof (LoadLevel), level, true); } result.Arm = pkge.Attr("arm","default"); result.Command = pkge.Attr("command", ""); var deps = pkge.Elements("uses"); foreach (var dep in deps) { result.Dependency.Add(dep.Attr("code")); } foreach (var item in pkge.Elements("load")) { result.Items.Add(ReadItem(item)); } foreach (var item in pkge.Elements("widget")) { ReadWidget(result, item); } return result; }
private void GeneratePkg(LoadPackage pkg, StringBuilder sb) { GeneratePrePackage(pkg, sb); foreach (var item in pkg.Items) { GenerateItem(item, sb); } GeneratePostPackage(pkg, sb); }
private void ReadWidget(LoadPackage result, XElement item) { var level = LoadLevel.Guest; var levele = item.Attr("level"); if (!string.IsNullOrWhiteSpace(levele)) { level = (LoadLevel)Enum.Parse(typeof(LoadLevel), levele, true); } var code = item.Attr("code"); var command = item.Attr("command"); result.Items.Add(new LoadItem {Level = level, Command=command, Type = LoadItemType.Script, Value = code + ".js"}); result.Items.Add(new LoadItem { Level = level, Command=command, Type = LoadItemType.Style, Value = code + ".css" }); result.Items.Add(new LoadItem { Level = level, Command = command, Type = LoadItemType.Template, Value = code + ".tpl.html" }); }
private string Stringify(LoadPackage[] subset) { var sb = new StringBuilder(); foreach (var package in subset) { sb.Append(package.Code); sb.Append(":"); foreach (var i in package.Items) { sb.Append(i.Value); sb.Append(","); } sb.Append(";"); } return sb.ToString(); }
private void ReadWidget(LoadPackage result, XElement item) { var level = LoadLevel.Guest; var levele = item.Attr("level"); if (!string.IsNullOrWhiteSpace(levele)) { level = (LoadLevel)Enum.Parse(typeof(LoadLevel), levele, true); } var code = item.Attr("code"); var command = item.Attr("command"); result.Items.Add(new LoadItem { Level = level, Command = command, Type = LoadItemType.Script, Value = code + ".js" }); result.Items.Add(new LoadItem { Level = level, Command = command, Type = LoadItemType.Style, Value = code + ".css" }); result.Items.Add(new LoadItem { Level = level, Command = command, Type = LoadItemType.Template, Value = code + ".tpl.html" }); }
private void GeneratePostPackage(LoadPackage pkg, StringBuilder sb) { sb.AppendLine("}"); sb.AppendLine("/* auto generated pkg " + pkg.Code + " finished */ "); }
private void GeneratePrePackage(LoadPackage pkg, StringBuilder sb) { sb.AppendLine("/* auto generated pkg " + pkg.Code + " (" + string.Join(",", pkg.Dependency) + "):" + pkg.Arm + ":" + pkg.Command + " started */ "); sb.AppendFormat("if(allowed('{0}','{1}')){{\r\n", pkg.Arm, pkg.Command); }