static int Main(string[] args) { // initialize logging Log = new Logging(Application.StartupPath + "\\AdapterConfig.log"); LoggingHelper.EnableApplicationLogging(Log); LoggingHelper.EnableXmlLogging(Log); Log.WriteAppStart(AppName, args); // read arguments foreach (string a in args) { switch (a.ToLower()) { case AdapterConfigArgument.InIM: { InIM = true; break; } case AdapterConfigArgument.InIMWizard: { InIMWizard = true; break; } } } // check multi instance if (CheckMultiInstance(args)) { goto exit; } // load DeviceDir DeviceMgt = new DeviceDirManager(); DeviceMgt.FileName = Application.StartupPath + "\\" + DeviceDirManager.IndexFileName; if (!DeviceMgt.LoadDeviceDir()) { Log.Write(LogType.Error, "Load DeviceDir failed. " + DeviceMgt.FileName); DeviceMgt.DeviceDirInfor = new DeviceDir(); MessageBox.Show("Cannot load DeviceDir file."); } // initialize config ConfigMgt = new AdapterConfigCfgMgt(); ConfigMgt.FileName = Application.StartupPath + "\\" + ConfigMgt.FileName; if (ConfigMgt.Load()) { Log.Write("Load config succeeded. " + ConfigMgt.FileName); } else { Log.Write(LogType.Error, "Load config failed. " + ConfigMgt.FileName); goto exit; } // initialize service config ServiceMgt = new AdapterServiceCfgMgt(); ServiceMgt.FileName = Application.StartupPath + "\\" + ServiceMgt.FileName; if (ServiceMgt.Load()) { Log.Write("Load serivce config succeeded. " + ServiceMgt.FileName); } else { Log.Write(LogType.Error, "Load serivce config failed. " + ServiceMgt.FileName); ServiceMgt = null; } // log config parameters string adapterFileName = ConfigMgt.Config.AdapterFileName; DirectionType adapterDirection = ConfigMgt.Config.AdapterDirection; Log.Write("Adapter filename: " + adapterFileName, false); Log.Write("Adapter direction: " + adapterDirection, false); if (adapterFileName == null || adapterFileName.Length < 1) { goto exit; } // show window Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); try { switch (adapterDirection) { case DirectionType.INBOUND: { // initialize inbound adapter agent InAdapter = new AdapterAgent <IInboundAdapterConfig, AdapterConfigEntryAttribute>(adapterFileName, Log); InitializeAdapter(InAdapter.Instance); Application.Run(new FormConfigIn()); UninitiliazeAdapter(InAdapter.Instance); break; } case DirectionType.OUTBOUND: { // initialize outbound adapter agent OutAdapter = new AdapterAgent <IOutboundAdapterConfig, AdapterConfigEntryAttribute>(adapterFileName, Log); InitializeAdapter(OutAdapter.Instance); Application.Run(new FormConfigOut()); UninitiliazeAdapter(OutAdapter.Instance); break; } case DirectionType.BIDIRECTIONAL: { // initialize bidiretional adapter agent BiAdapter = new AdapterAgent <IBidirectionalAdapterConfig, AdapterConfigEntryAttribute>(adapterFileName, Log); InitializeAdapter(BiAdapter.Instance); Application.Run(new FormConfigBi()); UninitiliazeAdapter(BiAdapter.Instance); break; } } } catch (Exception err) { Log.Write(LogType.Error, "Error in loading main window."); Log.Write(err); } exit: // exit Log.WriteAppExit(AppName); return((int)ExitCode); }
/// <summary> /// The main entry point for the application. /// </summary> static void Main() { // initialize logging Log = new Logging(Application.StartupPath + "\\AdapterService.log"); LoggingHelper.EnableApplicationLogging(Log); LoggingHelper.EnableXmlLogging(Log); Log.WriteAppStart(AppName); // load DeviceDir DeviceMgt = new DeviceDirManager(); DeviceMgt.FileName = Application.StartupPath + "\\" + DeviceDirManager.IndexFileName; if (!DeviceMgt.LoadDeviceDir()) { Log.Write(LogType.Error, "Load DeviceDir failed. " + ConfigMgt.FileName); goto exit; } // initialize config ConfigMgt = new AdapterServiceCfgMgt(); ConfigMgt.FileName = Application.StartupPath + "\\" + ConfigMgt.FileName; if (ConfigMgt.Load()) { Log.Write("Load config succeeded. " + ConfigMgt.FileName); } else { Log.Write(LogType.Error, "Load config failed. " + ConfigMgt.FileName); goto exit; } // log config parameters string serviceName = ConfigMgt.Config.ServiceName; string adapterFileName = ConfigMgt.Config.AdapterFileName; DirectionType adapterDirection = ConfigMgt.Config.AdapterDirection; Log.Write("Service name: " + serviceName, false); Log.Write("Adapter filename: " + adapterFileName, false); Log.Write("Adapter direction: " + adapterDirection, false); //Log.Write("GWConfigDB connection: " + ConfigMgt.Config.ConfigDBConnection, false); //contains db pw //Log.Write("GWDataDB connection: " + ConfigMgt.Config.DataDBConnection, false); //contains db pw Log.Write("Dump data: " + ConfigMgt.Config.DumpData.ToString(), false); // run service switch (adapterDirection) { case DirectionType.INBOUND: { // initialize inbound adapter agent InAdapter = new AdapterAgent <IInboundAdapterService, AdapterServiceEntryAttribute>(adapterFileName, Log); ServiceBase[] ServicesToRun = new ServiceBase[] { new InboundService() }; ServiceBase.Run(ServicesToRun); break; } case DirectionType.OUTBOUND: { // initialize outbound adapter agent OutAdapter = new AdapterAgent <IOutboundAdapterService, AdapterServiceEntryAttribute>(adapterFileName, Log); ServiceBase[] ServicesToRun = new ServiceBase[] { new OutboundService() }; ServiceBase.Run(ServicesToRun); break; } case DirectionType.BIDIRECTIONAL: { // initialize bidiretional adapter agent BiAdapter = new AdapterAgent <IBidirectionalAdapterService, AdapterServiceEntryAttribute>(adapterFileName, Log); ServiceBase[] ServicesToRun = new ServiceBase[] { new BidirectionalService() }; ServiceBase.Run(ServicesToRun); break; } } exit: // exit Log.WriteAppExit(AppName); }