public FileLabel(string path) { this.FilePath = path; InitializeComponent(); onCloseFile += new CloseEvent(() => { }); onClosedFile += new ClosedEvent(() => { }); onProgressBegin += new ProgressBeginEvent(() => { }); onProgressEnd += new ProgressEndEvent(() => { }); onAccept += new AcceptEvent(() => { }); this.fileName.Content = filePath.Substring(filePath.LastIndexOf("\\") + 1); this.Progress.Maximum = 100; ImageBrush imgB = new ImageBrush(System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(Properties.Resources.Close1.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions())); this.btnClose.Background = imgB; this.btnClose.BorderThickness = new Thickness(1); this.btnClose.Click += new RoutedEventHandler((object obj, RoutedEventArgs e) => { this.Close(); }); this.acceptLabel.MouseLeftButtonUp += new MouseButtonEventHandler((object obj1, MouseButtonEventArgs e1) => { this.ProgresBegin(); this.HiddenAccept(); }); }
public async Task Should_Support_Progress_From_Sever_To_Client() { var(client, server) = await Initialize(ConfigureClient, ConfigureServer); var data = new List <ProgressEvent>(); client.ProgressManager.Progress.Take(1).Switch().Subscribe(x => data.Add(x)); using var workDoneObserver = server.ProgressManager.Create( new ProgressStartEvent { Cancellable = true, Message = "Begin", Percentage = 0, Title = "Work is pending" }, onComplete: () => new ProgressEndEvent { Message = "End" } ); workDoneObserver.OnNext( new ProgressUpdateEvent { Percentage = 10, Message = "Report 1" } ); workDoneObserver.OnNext( new ProgressUpdateEvent { Percentage = 20, Message = "Report 2" } ); workDoneObserver.OnNext( new ProgressUpdateEvent { Percentage = 30, Message = "Report 3" } ); workDoneObserver.OnNext( new ProgressUpdateEvent { Percentage = 40, Message = "Report 4" } ); workDoneObserver.OnCompleted(); await data.DelayUntilCount(6, CancellationToken); var results = data.Select( z => z switch { ProgressStartEvent begin => begin.Message, ProgressUpdateEvent begin => begin.Message, ProgressEndEvent begin => begin.Message, _ => throw new NotSupportedException() }
Task <Unit> IRequestHandler <ProgressEndEvent, Unit> .Handle(ProgressEndEvent request, CancellationToken cancellationToken) { if (_activeObservables.TryGetValue(request.ProgressId, out var observable)) { observable.OnNext(request); } // TODO: Add log message for unhandled? return(Unit.Task); }
public abstract Task <Unit> Handle(ProgressEndEvent request, CancellationToken cancellationToken);