示例#1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="ev"></param>
 public void OnEvent(SlaveEvent ev)
 {
     switch ((SlaveEventType)ev.EventType)
     {
     case SlaveEventType.IncommingMessage:
     {
         ev.Data.Match()
         .With <GreetTheMasterMessage>(m =>
             {
                 if (ev.Source.Initialize(m.Ip, m.OperatingSystem, m.MachineName, m.UserName))
                 {
                     FireSlaveConnected(ev.Source);
                 }
             })
         .With <PongMessage>(m => ev.Source.DecrementPingTimeout())
         .With <LoginMessage>(m =>
             {
                 if (StudentsDB.QueryStuidAndPassword(m.stuid, m.password) == 1)
                 {
                     ev.Source.Send(new LoginSuccessMessage
                     {
                         Price = 0.05
                     });
                 }
                 else
                 {
                     ev.Source.Send(new LoginFailMessage());
                 }
             });
         break;
     }
     }
 }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        private void Initialize()
        {
            m_childWindows = new List <Window>();

            SlavesList.DataContext     = ViewModelSlaves = new ViewModelCollection <Slave>();
            SlaveStatusBar.DataContext = ViewModelMonitor = new SlaveMonitorModel();

            Slave.SlaveEvents.Subscribe(this);
            NetworkService.Instance.Start();

            ViewModelMonitor.SetListeningState("Listening");

            AddInfoMessage("NetworkService running...");
            StudentsDB db = new StudentsDB();
        }