Пример #1
0
        public WSServer(CargoHostEndPoint cargoHost, string alias, string uri, string allowedIPs, string profileDir, bool enableArchiveDecision) :
            base()
        {
            m_Shutdown              = false;
            m_CargoHostEndPoint     = cargoHost;
            m_ProfilesFolder        = profileDir;
            m_Alias                 = alias;
            m_EnableArchiveDecision = enableArchiveDecision;

            m_ClientListLock          = new object();
            m_CaseListLock            = new object();
            _workstationLoadListLock  = new object();
            _updateCaseAssignmentLock = new object();

            m_HostConnThread   = new Thread(new ThreadStart(HostConnState));
            m_ClientConnThread = new Thread(new ThreadStart(ClientConnState));

            m_NetworkHost = new NetworkHost(this, new Uri(uri), alias, allowedIPs);
            m_NetworkHost.SendTimeoutMin    = int.Parse(ConfigurationManager.AppSettings["WcfTcpBindingSendTimeoutMin"]);
            m_NetworkHost.ReceiveTimeoutMin = int.Parse(ConfigurationManager.AppSettings["WcfTcpBindingReceiveTimeoutMin"]);
            m_Callbacks = new WSServerCallbacks();

            m_ManualCodingCallback = new ManualCodingCallback_Impl(this);
            m_AnalystCallback      = new AnalystCallback_Impl(this);
            m_CaseChangeCallback   = new CaseChangeCallback_Impl(this);

            _workstationLoadBalanceList = new List <LoadBalanceInfo>();

            _loadBalanceCheckTimer = new Timer(new TimerCallback(LoadBalanceCheckTimerCallback), null, Timeout.Infinite, Timeout.Infinite);
            _loadBalanceTimerSet   = false;
            _loadBalanceTimerSelectedWorkstation = string.Empty;

            base.Subscribe(base.caseList);
            base.caseList.StartUpdate = true;
        }
Пример #2
0
        public MainWindow()
        {
            InitializeComponent();

            _cargoHostEndPoint = new CargoHostEndPoint(ConfigurationManager.AppSettings["CargoHostLocation"],
                                                       Convert.ToInt32(ConfigurationManager.AppSettings["CargoHostPort"]));

            _loginInfo       = new LoginInfo();
            this.DataContext = _loginInfo;
        }
Пример #3
0
        public MainWindow()
        {
            bool createdNew = true;

            mutex = new Mutex(true, "WSComm", out createdNew);

            if (createdNew)
            {
                InitializeComponent();

                caseWSCollection = (CaseWSCollection)FindResource("casewscollection");

                m_CargoHostEndPoint_Impl = new CargoHostEndPoint(ConfigurationManager.AppSettings["host"],
                                                                 Int32.Parse(ConfigurationManager.AppSettings["port"]));

                m_WSServer_Impl = new WSServer(m_CargoHostEndPoint_Impl,
                                               ConfigurationManager.AppSettings["Alias"],
                                               ConfigurationManager.AppSettings["ConnectionUri"],
                                               ConfigurationManager.AppSettings["AllowedIPList"],
                                               ConfigurationManager.AppSettings["UserProfiles"],
                                               Boolean.Parse(ConfigurationManager.AppSettings["EnableArchiveDecision"]));

                m_WSServer_Impl.CaseListUpdateEvent += new WSServer.CaseListUpdateHandler(UpdateCaseList);
                m_WSServer_Impl.HostStatusEvent     += new WSServer.HostStatusHandler(UpdateHostStatus);

                if (Boolean.Parse(ConfigurationManager.AppSettings["EnableTIP"]))
                {
                    m_TIPClientManager_Impl = new TIPClientManager(m_WSServer_Impl,
                                                                   ConfigurationManager.AppSettings["Alias"],
                                                                   ConfigurationManager.AppSettings["CTITemplateDirectory"]);
                }

                CargoHostNameText.Text = ConfigurationManager.AppSettings["host"] + ": Disconnected";

                if (Boolean.Parse(ConfigurationManager.AppSettings["EnableMCArea"]))
                {
                    MCAreaEnable_Click(this, new RoutedEventArgs());
                }
                else
                {
                    MCAreaDisable_Click(this, new RoutedEventArgs());
                }
            }
            else
            {
                Process current = Process.GetCurrentProcess();
                foreach (Process process in Process.GetProcessesByName(current.ProcessName))
                {
                    SetForegroundWindow(process.MainWindowHandle);
                }

                Application.Current.Shutdown();
            }
        }
Пример #4
0
        public override void Dispose()
        {
            try
            {
                if (/*exists (avoid first try exceptions)?*/ _rawDataAccess != null)
                {
                    _rawDataAccess.Dispose();
                }
            }
            catch { }
            finally { _rawDataAccess = null; }

            try
            {
                if (/*exists (avoid first try exceptions)?*/ _realTimeViewer != null)
                {
                    _realTimeViewer.Dispose();
                }
            }
            catch { }
            finally { _realTimeViewer = null; }

            try
            {
                if (/*exists (avoid first try exceptions)?*/ _detectorsAccess != null)
                {
                    _detectorsAccess.Dispose();
                }
            }
            catch { }
            finally { _detectorsAccess = null; }

            try
            {
                if (/*exists (avoid first try exceptions)?*/ _apcsAccess != null)
                {
                    _apcsAccess.Dispose();
                }
            }
            catch { }
            finally { _apcsAccess = null; }

            try
            {
                if (/*exists (avoid first try exceptions)?*/ _cargoHostEndPoint != null)
                {
                    _cargoHostEndPoint.Close();
                }
            }
            catch { }
            finally { _cargoHostEndPoint = null; }

            try { base.Dispose(); } catch { }
        }
Пример #5
0
    /// <summary>
    /// CargoHostInterface.  This is the constructor for this
    /// class. It publishes XI and SNM objects for CargoHost to receive notifications
    ///
    ///	Arguments:
    ///
    ///
    ///
    ///		none
    ///	Exceptions:
    ///		none
    ///	Return:
    ///		none
    /// </summary>
    public CargoHostInterface(EventLoggerAccess logger)
    {
        try
        {
            string CORBA_NS_Host = (string)System.Configuration.ConfigurationManager.AppSettings["host"];
            Int32  CORBA_NS_Port = Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["port"]);

            _cargoHostEndPoint = new CargoHostEndPoint(CORBA_NS_Host, CORBA_NS_Port);
        }
        catch (Exception e)
        {
            MessageBox.Show(e.StackTrace);
            return;
        }

        _cargoHostEndPoint.Open();

        _logger = logger;
    }
Пример #6
0
        public DetectorsDataAccess(EventLoggerAccess logger) :
            base(logger)
        {
            _logger = logger;

            _detectorsAccess             = new DetectorsAccess(_logger);
            _detectorsAccess.ReadyEvent += new ConnectionStateChangeHandler(OnDetectorsChange);

            _apcsAccess             = new ApcsAccess(logger);
            _apcsAccess.ReadyEvent += new ConnectionStateChangeHandler(OnApcsChange);

            _apcsAccess.Start();
            _detectorsAccess.Start();

            _OpcTags        = new OpcTags();
            base.TagUpdate += new PLCTagUpdateHandler(_OpcTags.DataAccess_TagUpdate);
            base.TagUpdate += new PLCTagUpdateHandler(DetectorsDataAccess_TagUpdate);

            _cargoHostEndPoint = new CargoHostEndPoint(AppConfiguration.CargoHostServer, AppConfiguration.CargoHostPort);
            _logger.LogInfo("Cargo Host HostEndPoint is " + _cargoHostEndPoint.IPAddress + ":" + _cargoHostEndPoint.IPPort.ToString());

            _rawDataAccess  = new RawDataAccess(_logger, _detectorsAccess);
            _realTimeViewer = new RealTimeViewer(_logger);
        }