4 namespace TechBot.Library
6 [Command("ntstatus", Help = "!ntstatus <value>")]
7 public class NtStatusCommand : XmlLookupCommand
9 public NtStatusCommand()
13 public override string XmlFile
15 get { return Settings.Default.NtStatusXml; }
18 public override void ExecuteCommand()
20 if (Text.Equals(String.Empty))
22 TechBot.ServiceOutput.WriteLine(Context,
23 "Please provide a valid NTSTATUS value.");
27 NumberParser np = new NumberParser();
28 long ntstatus = np.Parse(Text);
31 TechBot.ServiceOutput.WriteLine(Context,
32 String.Format("{0} is not a valid NTSTATUS value.",
37 string description = GetNtstatusDescription(ntstatus);
38 if (description != null)
40 TechBot.ServiceOutput.WriteLine(Context,
41 String.Format("{0} is {1}.",
47 TechBot.ServiceOutput.WriteLine(Context,
48 String.Format("I don't know about NTSTATUS {0}.",
53 public string GetNtstatusDescription(long ntstatus)
55 XmlElement root = base.m_XmlDocument.DocumentElement;
56 XmlNode node = root.SelectSingleNode(String.Format("Ntstatus[@value='{0}']",
57 ntstatus.ToString("X8")));
60 XmlAttribute text = node.Attributes["text"];
62 throw new Exception("Node has no text attribute.");