Identify TechBot to allow private messages
[reactos.git] / irc / TechBot / TechBot / ServiceThread.cs
1 using System;
2 using System.Configuration;
3 using System.Diagnostics;
4 using TechBot.Library;
5
6 namespace TechBot
7 {
8 public class ServiceThread
9 {
10 private string IRCServerHostName;
11 private int IRCServerHostPort;
12 private string IRCChannelNames;
13 private string IRCBotName;
14 private string IRCBotPassword;
15 private string ChmPath;
16 private string MainChm;
17 private string NtstatusXml;
18 private string HresultXml;
19 private string WmXml;
20 private string WinerrorXml;
21 private string SvnCommand;
22 private string BugUrl;
23 private EventLog eventLog;
24
25 public ServiceThread(EventLog eventLog)
26 {
27 this.eventLog = eventLog;
28 }
29
30 private void SetupConfiguration()
31 {
32 IRCServerHostName = ConfigurationSettings.AppSettings["IRCServerHostName"];
33 IRCServerHostPort = Int32.Parse(ConfigurationSettings.AppSettings["IRCServerHostPort"]);
34 IRCChannelNames = ConfigurationSettings.AppSettings["IRCChannelNames"];
35 IRCBotName = ConfigurationSettings.AppSettings["IRCBotName"];
36 IRCBotPassword = ConfigurationSettings.AppSettings["IRCBotPassword"];
37 ChmPath = ConfigurationSettings.AppSettings["ChmPath"];
38 MainChm = ConfigurationSettings.AppSettings["MainChm"];
39 NtstatusXml = ConfigurationSettings.AppSettings["NtstatusXml"];
40 HresultXml = ConfigurationSettings.AppSettings["HresultXml"];
41 WmXml = ConfigurationSettings.AppSettings["WmXml"];
42 WinerrorXml = ConfigurationSettings.AppSettings["WinerrorXml"];
43 SvnCommand = ConfigurationSettings.AppSettings["SvnCommand"];
44 BugUrl = ConfigurationSettings.AppSettings["BugUrl"];
45 }
46
47 public void Run()
48 {
49 SetupConfiguration();
50 System.Console.WriteLine("TechBot irc service...");
51
52 IrcService ircService = new IrcService(IRCServerHostName,
53 IRCServerHostPort,
54 IRCChannelNames,
55 IRCBotName,
56 IRCBotPassword,
57 ChmPath,
58 MainChm,
59 NtstatusXml,
60 WinerrorXml,
61 HresultXml,
62 WmXml,
63 SvnCommand,
64 BugUrl);
65 ircService.Run();
66 }
67
68 public void Start()
69 {
70 try
71 {
72 Run();
73 }
74 catch (Exception ex)
75 {
76 eventLog.WriteEntry(String.Format("Ex. {0}", ex));
77 }
78 }
79 }
80 }