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