--- /dev/null
+using System;\r
+using System.Configuration;\r
+using TechBot.Library;\r
+\r
+namespace TechBot.Console\r
+{\r
+ public class ConsoleServiceOutput : IServiceOutput\r
+ {\r
+ public void WriteLine(string message)\r
+ {\r
+ System.Console.WriteLine(message);\r
+ }\r
+ }\r
+\r
+ \r
+ class MainClass\r
+ {\r
+ private static void VerifyRequiredOption(string optionName,\r
+ string optionValue)\r
+ {\r
+ if (optionValue == null)\r
+ {\r
+ throw new Exception(String.Format("Option '{0}' not set.",\r
+ optionName));\r
+ }\r
+ }\r
+ \r
+ private static string IRCServerHostName\r
+ {\r
+ get\r
+ {\r
+ string optionName = "IRCServerHostName";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+\r
+ private static int IRCServerHostPort\r
+ {\r
+ get\r
+ {\r
+ string optionName = "IRCServerHostPort";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return Int32.Parse(s);\r
+ }\r
+ }\r
+\r
+ private static string IRCChannelName\r
+ {\r
+ get\r
+ {\r
+ string optionName = "IRCChannelName";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+\r
+ private static string IRCBotName\r
+ {\r
+ get\r
+ {\r
+ string optionName = "IRCBotName";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+\r
+ private static string ChmPath\r
+ {\r
+ get\r
+ {\r
+ string optionName = "ChmPath";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+ \r
+ private static string MainChm\r
+ {\r
+ get\r
+ {\r
+ string optionName = "MainChm";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+\r
+ private static string NtstatusXml\r
+ {\r
+ get\r
+ {\r
+ string optionName = "NtstatusXml";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+\r
+ private static string WinerrorXml\r
+ {\r
+ get\r
+ {\r
+ string optionName = "WinerrorXml";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+\r
+ private static string HresultXml\r
+ {\r
+ get\r
+ {\r
+ string optionName = "HresultXml";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+\r
+ private static string SvnCommand\r
+ {\r
+ get\r
+ {\r
+ string optionName = "SvnCommand";\r
+ string s = ConfigurationSettings.AppSettings[optionName];\r
+ VerifyRequiredOption(optionName,\r
+ s);\r
+ return s;\r
+ }\r
+ }\r
+\r
+ private static void RunIrcService()\r
+ {\r
+ IrcService ircService = new IrcService(IRCServerHostName,\r
+ IRCServerHostPort,\r
+ IRCChannelName,\r
+ IRCBotName,\r
+ ChmPath,\r
+ MainChm,\r
+ NtstatusXml,\r
+ WinerrorXml,\r
+ HresultXml,\r
+ SvnCommand);\r
+ ircService.Run();\r
+ }\r
+ \r
+ public static void Main(string[] args)\r
+ {\r
+ if (args.Length > 0 && args[0].ToLower().Equals("irc"))\r
+ {\r
+ RunIrcService();\r
+ return;\r
+ }\r
+ \r
+ System.Console.WriteLine("TechBot running console service...");\r
+ TechBotService service = new TechBotService(new ConsoleServiceOutput(),\r
+ ChmPath,\r
+ MainChm,\r
+ NtstatusXml,\r
+ WinerrorXml,\r
+ HresultXml,\r
+ SvnCommand);\r
+ service.Run();\r
+ while (true)\r
+ {\r
+ string s = System.Console.ReadLine();\r
+ service.InjectMessage(s);\r
+ }\r
+ }\r
+ }\r
+}\r