Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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);
        }