SND\AstrorEnales_cp 6f759ae509 Build a small tool to check all ANX classes about their Development attributes and generate an html report.
Added Development attributes to all PackedVector classes and Audio classes.
2015-03-15 01:11:20 +01:00

62 lines
2.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Reflection;
using System.IO;
using ANX.Framework.NonXNA.Development;
namespace OnlineStatusGenerator
{
class Program
{
static void Main(string[] args)
{
var assembly = Assembly.LoadFile(Path.GetFullPath("ANX.Framework.dll"));
Type[] allTypes = assembly.GetTypes();
var namespaces = new Dictionary<string, List<Type>>();
foreach (Type type in allTypes)
{
if (type.Namespace.Contains("NonXNA") || type.IsPublic == false)
continue;
if (namespaces.ContainsKey(type.Namespace) == false)
namespaces.Add(type.Namespace, new List<Type>());
namespaces[type.Namespace].Add(type);
}
var sortedKeys = new List<string>(namespaces.Keys);
sortedKeys.Sort();
string result = "<table border=1 cellspacing=0>";
foreach (string space in sortedKeys)
{
result += "\n<tr><td style=\"background-color: silver;\"><strong>" + space + "</strong></td><td style=\"background-color: silver;\" align=center>%</td><td style=\"background-color: silver;\" align=center>Developer</td><td style=\"background-color: silver;\" align=center>Test State</td></tr>";
foreach (Type type in namespaces[space])
{
result += "\n<tr><td>" + type.Name + "</td>";
object[] percentageAttributes = type.GetCustomAttributes(typeof(PercentageCompleteAttribute), false);
var percentageAttribute = percentageAttributes.Length > 0 ?
percentageAttributes[0] as PercentageCompleteAttribute : null;
result += "<td align=center>" + (percentageAttribute != null ? percentageAttribute.Percentage.ToString() : "---") + "</td>";
object[] developerAttributes = type.GetCustomAttributes(typeof(DeveloperAttribute), false);
var developerAttribute = developerAttributes.Length > 0 ?
developerAttributes[0] as DeveloperAttribute : null;
result += "<td align=center>" + (developerAttribute != null ? developerAttribute.Developer : "---") + "</td>";
object[] testAttributes = type.GetCustomAttributes(typeof(TestStateAttribute), false);
var testAttribute = testAttributes.Length > 0 ?
testAttributes[0] as TestStateAttribute : null;
result += "<td align=center>" + (testAttribute != null ? testAttribute.State.ToString() : "---") + "</td>";
result += "</tr>";
}
}
result += "</table>";
File.WriteAllText("Report.html", result);
System.Diagnostics.Process.Start("Report.html");
}
}
}