protected void Page_Load(object sender, EventArgs e) { // [2008-05-27] O.R.: Ibn 4.7 only if (!Mediachase.IBN.Business.Configuration.TimeTrackingCustomization) { if (ClassName.ToLowerInvariant() == "timetrackingblock" || ClassName.ToLowerInvariant() == "timetrackingentry" || ClassName.ToLowerInvariant() == "timetrackingblocktypeinstance") { throw new LicenseRestrictionException(); } } LoadRequestVariables(); CHelper.AddToContext("ClassName", ClassName); //CHelper.AddToContext(NavigationBlock.KeyContextMenu, "MetaClassView"); //CHelper.AddToContext(NavigationBlock.KeyContextMenuTitle, CHelper.GetResFileString(mc.FriendlyName)); this.Page.PreRenderComplete += new EventHandler(Page_PreRenderComplete); xmlStruct.InnerDataBind += new XmlFormBuilder.InnerDataBindEventHandler(xmlStruct_InnerDataBind); if (!Page.IsPostBack) { xmlStruct.ClassName = ClassName; xmlStruct.LayoutType = LayoutType.MetaClassView; if (!String.IsNullOrEmpty(PlaceName)) { xmlStruct.PlaceName = PlaceName; } xmlStruct.LayoutMode = LayoutMode.WithTabs; xmlStruct.CheckVisibleTab = mc; xmlStruct.DataBind(); } }
public void Write(DirectoryInfo directory) { TypeFileName.MakeFile(directory, (writer) => { writer.WriteLine(" public sealed partial class {0} : MediaType", ClassName); writer.WriteLine(" {"); writer.WriteLine(" private {0}(string value, string[] extensions) : base(\"{1}/\" + value, extensions) {{ }}", ClassName, ClassName.ToLowerInvariant()); writer.WriteLine(); writer.WriteLine(" private {0}(string value) : this(value, null) {{ }}", ClassName); writer.WriteLine(); writer.WriteLine(" public static readonly {0} Any{0} = new {0}(\"*\");", ClassName); writer.WriteLine(); writer.WriteLine(" public override bool Matches(string fileName)"); writer.WriteLine(" {"); writer.WriteLine(" if (ReferenceEquals(this, Any{0}))", ClassName); writer.WriteLine(" {"); writer.WriteLine(" return Values.Any(x => x.Matches(fileName));"); writer.WriteLine(" }"); writer.WriteLine(" else"); writer.WriteLine(" {"); writer.WriteLine(" return base.Matches(fileName);"); writer.WriteLine(" }"); writer.WriteLine(" }"); writer.WriteLine(" }"); }, "using System.Linq;"); ValuesFileName.MakeFile(directory, (writer) => { writer.WriteLine(" public sealed partial class {0} : MediaType", ClassName); writer.WriteLine(" {"); var sortedEntries = Entries.Values.OrderBy(e => e.FieldName); foreach (var entry in sortedEntries) { entry.Write(writer); } writer.WriteLine(); writer.WriteLine(" public static new readonly {0}[] Values = {{", ClassName); var values = sortedEntries.Where(e => e.DeprecationMessage == null); var last = values.Last(); var rest = values.SkipLast(1); foreach (var entry in rest) { writer.WriteLine(" {0},", entry.FieldName); } writer.WriteLine(" {0}", last.FieldName); writer.WriteLine(" };"); writer.WriteLine(" }"); }); }