/// <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; } } }
/// <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(); }