mirror of
https://github.com/reactos/reactos.git
synced 2024-11-09 08:08:38 +00:00
3790fc1254
svn path=/trunk/; revision=34081
66 lines
1.7 KiB
C#
66 lines
1.7 KiB
C#
using System;
|
|
using System.Xml;
|
|
|
|
using TechBot.Library;
|
|
|
|
namespace TechBot.Commands.Common
|
|
{
|
|
[Command("winerror", Help = "!winerror <value>")]
|
|
public class WinErrorCommand : XmlLookupCommand
|
|
{
|
|
public WinErrorCommand()
|
|
{
|
|
}
|
|
|
|
public override string XmlFile
|
|
{
|
|
get { return Settings.Default.WinErrorXml; }
|
|
}
|
|
|
|
public override void ExecuteCommand()
|
|
{
|
|
if (string.IsNullOrEmpty(Text))
|
|
{
|
|
Say("Please provide a valid System Error Code value.");
|
|
}
|
|
else
|
|
{
|
|
NumberParser np = new NumberParser();
|
|
long winerror = np.Parse(Text);
|
|
if (np.Error)
|
|
{
|
|
Say("{0} is not a valid System Error Code value.", Text);
|
|
return;
|
|
}
|
|
|
|
string description = GetWinerrorDescription(winerror);
|
|
if (description != null)
|
|
{
|
|
Say("{0} is {1}.",
|
|
Text,
|
|
description);
|
|
}
|
|
else
|
|
{
|
|
Say("I don't know about System Error Code {0}.", Text);
|
|
}
|
|
}
|
|
}
|
|
|
|
public string GetWinerrorDescription(long winerror)
|
|
{
|
|
XmlElement root = base.m_XmlDocument.DocumentElement;
|
|
XmlNode node = root.SelectSingleNode(String.Format("Winerror[@value='{0}']",
|
|
winerror.ToString()));
|
|
if (node != null)
|
|
{
|
|
XmlAttribute text = node.Attributes["text"];
|
|
if (text == null)
|
|
throw new Exception("Node has no text attribute.");
|
|
return text.Value;
|
|
}
|
|
else
|
|
return null;
|
|
}
|
|
}
|
|
}
|