Beispiel #1
0
        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();
        }