public void Copy(string _source, string _dest, UIElement _caller) { Show(); source = _source; dest = _dest; caller = _caller; BackgroundWorker bgWorker = new BackgroundWorker { WorkerReportsProgress = true }; MovementProgress ctrl = new MovementProgress(); StackContent.Children.Add(ctrl); UpdateLayout(); ctrl.FileToProcess.Text = source; ctrl.MovementProgressBar.Value = 0; bgWorker.DoWork += (s, e) => MoveContent(false, bgWorker); bgWorker.ProgressChanged += (s, e) => { ctrl.MovementProgressBar.Value += e.ProgressPercentage; }; bgWorker.RunWorkerCompleted += (s, e) => { ctrl.MovementProgressBar.Value = 100; StackContent.Children.Remove(ctrl); if (StackContent.Children.Count == 0) { MovementProgress done = new MovementProgress(); done.FileToProcess.Text = "---- DONE! ----"; done.MovementProgressBar.Value = 100; StackContent.Children.Add(done); Timer t = new Timer(1000); t.Start(); t.Elapsed += (xs, xe) => Dispatcher.Invoke(new Action(Close)); } if (Globals.settings.IntegrateXBMC) { if (Globals.XBMC != null && Globals.XBMC.Status.IsConnected) { if (!Globals.XBMC.Player.IsVideoPlayerActive()) { try { Globals.XBMC.VideoLibrary.ScanForContent(); } catch (Exception ex) { caller.Dispatcher.Invoke(new Action(() => Globals.Errors.Add(new Error { Description = ex.Message, Dest = "", Source = "" }))); } } else { DelayContentScan(); } } } }; bgWorker.RunWorkerAsync(); }
public void Copy(string _source, string _dest, UIElement _caller) { Show(); source = _source; dest = _dest; caller = _caller; BackgroundWorker bgWorker = new BackgroundWorker{ WorkerReportsProgress = true }; MovementProgress ctrl = new MovementProgress(); StackContent.Children.Add(ctrl); UpdateLayout(); ctrl.FileToProcess.Text = source; ctrl.MovementProgressBar.Value = 0; bgWorker.DoWork += (s, e) => MoveContent(false, bgWorker); bgWorker.ProgressChanged += (s, e) => { ctrl.MovementProgressBar.Value += e.ProgressPercentage; }; bgWorker.RunWorkerCompleted += (s, e) => { ctrl.MovementProgressBar.Value = 100; StackContent.Children.Remove(ctrl); if (StackContent.Children.Count == 0) { MovementProgress done = new MovementProgress(); done.FileToProcess.Text= "---- DONE! ----"; done.MovementProgressBar.Value = 100; StackContent.Children.Add(done); Timer t = new Timer(1000); t.Start(); t.Elapsed += (xs, xe) => Dispatcher.Invoke(new Action(Close)); } if (Globals.settings.IntegrateXBMC) { if (Globals.XBMC != null && Globals.XBMC.Status.IsConnected) { if (!Globals.XBMC.Player.IsVideoPlayerActive()) { try { Globals.XBMC.VideoLibrary.ScanForContent(); } catch(Exception ex) { caller.Dispatcher.Invoke(new Action(() => Globals.Errors.Add(new Error { Description = ex.Message, Dest = "", Source = "" }))); } } else { DelayContentScan(); } } } }; bgWorker.RunWorkerAsync(); }