예제 #1
0
        private void Initialize()
        {
            Store.Current.SelectedDatabaseChange += (sender, args) =>
            {
                var databaseReference = args.Data;
                Title = databaseReference == null ? $"LiteDB Explorer {Versions.CurrentVersion}" : $"{databaseReference.Name} - LiteDB Explorer {Versions.CurrentVersion}";
            };

            Store.Current.SelectedCollectionChange += (sender, args) =>
            {
                BorderFilePreview.Visibility = Visibility.Collapsed;
            };

            Store.Current.SelectedDocumentChange += (sender, args) =>
            {
                var document = args.Data;

                BorderFilePreview.Visibility = Visibility.Collapsed;

                if (document != null && document.Collection is FileCollectionReference reference)
                {
                    var fileInfo = reference.GetFileObject(document);
                    FilePreview.LoadFile(fileInfo);
                    BorderFilePreview.Visibility = Visibility.Visible;
                }
            };
        }
예제 #2
0
        private void ListCollectionData_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (DbSelectedItems.Count() > 1 || DbSelectedItems.Count() == 0)
            {
                ItemsDocPreview.ItemsSource  = null;
                BorderDocPreview.Visibility  = Visibility.Collapsed;
                BorderFilePreview.Visibility = Visibility.Collapsed;
                return;
            }


            BorderDocPreview.Visibility = Visibility.Visible;
            var document = DbSelectedItems.First();
            var controls = new List <DocumentFieldData>();

            for (int i = 0; i < document.LiteDocument.Keys.Count; i++)
            {
                var key       = document.LiteDocument.Keys.ElementAt(i);
                var valueEdit = BsonValueEditor.GetBsonValueEditor(string.Format("[{0}]", key), document.LiteDocument[key], document.LiteDocument, true);
                controls.Add(new DocumentFieldData(key, valueEdit));
            }

            ItemsDocPreview.ItemsSource = controls;

            if (document.Collection is FileCollectionReference)
            {
                var fileInfo = (document.Collection as FileCollectionReference).GetFileObject(document);
                FilePreview.LoadFile(fileInfo);
                BorderFilePreview.Visibility = Visibility.Visible;
            }
            else
            {
                BorderFilePreview.Visibility = Visibility.Collapsed;
            }
        }
예제 #3
0
        private void AddPreviewBoxes()
        {
            lock (flowPreview.Controls)
            {
                MasterFileList = new List <FilePreview>();
                foreach (Control c in _pnlCameras.Controls)
                {
                    try
                    {
                        if (c is CameraWindow)
                        {
                            var cw = ((CameraWindow)c);
                            List <FilesFile> ffs;
                            lock (cw.FileList)
                            {
                                ffs = cw.FileList.ToList();
                            }
                            foreach (FilesFile ff in ffs)
                            {
                                MasterFileList.Add(new FilePreview(ff.Filename, ff.DurationSeconds, cw.Camobject.name,
                                                                   ff.CreatedDateTicks, 2, cw.Camobject.id, ff.MaxAlarm));
                            }
                        }
                        if (c is VolumeLevel)
                        {
                            var vl = ((VolumeLevel)c);
                            List <FilesFile> ffs;
                            lock (vl.FileList)
                            {
                                ffs = vl.FileList.ToList();
                            }
                            foreach (FilesFile ff in ffs)
                            {
                                MasterFileList.Add(new FilePreview(ff.Filename, ff.DurationSeconds, vl.Micobject.name,
                                                                   ff.CreatedDateTicks, 1, vl.Micobject.id, ff.MaxAlarm));
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.Error("", ex);
                    }
                }
                var displayList =
                    MasterFileList.OrderByDescending(p => p.CreatedDateTicks).Where(p => p.ObjectTypeId == 2).Take(Conf.PreviewItems).ToList();
                foreach (FilePreview fp in displayList)
                {
                    FilePreview fp1      = fp;
                    var         filename = Conf.MediaDirectory + "video\\" + Cameras.Single(p => p.id == fp1.ObjectId).directory +
                                           "\\" + fp.Filename;
                    FilePreview fp2   = fp;
                    var         thumb = Conf.MediaDirectory + "video\\" + Cameras.Single(p => p.id == fp2.ObjectId).directory +
                                        "\\thumbs\\" + fp.Filename.Substring(0, fp.Filename.LastIndexOf(".", StringComparison.Ordinal)) + ".jpg";

                    AddPreviewControl(thumb, filename, fp.Duration, (new DateTime(fp.CreatedDateTicks)), false);
                }
            }
        }
예제 #4
0
        //-----Execute at page load-----
        public MainPage()
        {
            this.InitializeComponent();

            for (int i = 0; i <= 99; i++)
            {
                FilePreview.Items.Add((string)"Text to send line " + i.ToString());
            }
            FilePreview.SelectedIndex = 0;
            FilePreview.ScrollIntoView(FilePreview.SelectedItem);
        }
예제 #5
0
        private List <FilePreview> GetFiles()
        {
            var files = new List <FilePreview>();

            var currentDirectory = Directory.GetCurrentDirectory();
            var resultsDirectory = System.IO.Path.Combine(currentDirectory, "Results");

            if (Directory.Exists(resultsDirectory))
            {
                DirectoryInfo dirInfo = new DirectoryInfo(resultsDirectory);
                FileInfo[]    info    = dirInfo.GetFiles("*.*", SearchOption.TopDirectoryOnly);

                if (info.Count() != 0)
                {
                    foreach (var file in info)
                    {
                        try
                        {
                            if (file.Extension == ".json")
                            {
                                var fileStr  = File.ReadAllText(file.FullName);
                                var saveFile = JsonConvert.DeserializeObject <SaveFile>(fileStr);

                                var filePreview = new FilePreview
                                {
                                    AlgorithmName = saveFile.Name,
                                    AlgorithmTime = saveFile.OutputData.AlgorithmTime,
                                    Size          = saveFile.OutputData.StudentSequence.Count,
                                    LocalPath     = file.FullName
                                };

                                files.Add(filePreview);
                            }
                        }
                        catch { }
                    }
                }
                else
                {
                    ShowNoDataYet();
                }
            }
            else
            {
                ShowNoDataYet();
            }

            return(files);
        }
예제 #6
0
        private void ListCollectionData_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (DbSelectedItems.Count() > 1 || !DbSelectedItems.Any())
            {
                // ItemsDocPreview.ItemsSource = null;
                BorderDocPreview.Visibility  = Visibility.Collapsed;
                BorderFilePreview.Visibility = Visibility.Collapsed;
                return;
            }


            BorderDocPreview.Visibility = Visibility.Visible;
            var document = DbSelectedItems.First();

            /*var controls = new List<DocumentFieldData>();
             *
             * for (int i = 0; i < document.LiteDocument.Keys.Count; i++)
             * {
             *  var key = document.LiteDocument.Keys.ElementAt(i);
             *  var valueEdit = BsonValueEditor.GetBsonValueEditor(
             *      expandMode: BsonEditorExpandMode.Inline,
             *      bindingPath: $"[{key}]",
             *      bindingValue: document.LiteDocument[key],
             *      bindingSource: document.LiteDocument,
             *      readOnly: true,
             *      keyName: key
             *  );
             *  controls.Add(new DocumentFieldData(key, valueEdit));
             * }
             *
             * ItemsDocPreview.ItemsSource = controls;*/

            DocumentTreeView.ItemsSource = new DocumentTreeItemsSource(document);

            if (document.Collection is FileCollectionReference reference)
            {
                var fileInfo = reference.GetFileObject(document);
                FilePreview.LoadFile(fileInfo);
                BorderFilePreview.Visibility = Visibility.Visible;
            }
            else
            {
                BorderFilePreview.Visibility = Visibility.Collapsed;
            }
        }
예제 #7
0
 public void LoadPreviews()
 {
     UISync.Execute(ClearPreviewBoxes);
     lock (flowPreview.Controls)
     {
         MasterFileList = new List <FilePreview>();
         foreach (Control c in _pnlCameras.Controls)
         {
             try
             {
                 if (c is CameraWindow)
                 {
                     var cw = ((CameraWindow)c);
                     List <FilesFile> ffs;
                     lock (cw.FileList)
                     {
                         ffs = cw.FileList.ToList();
                     }
                     foreach (FilesFile ff in ffs)
                     {
                         MasterFileList.Add(new FilePreview(ff.Filename, ff.DurationSeconds, cw.Camobject.name,
                                                            ff.CreatedDateTicks, 2, cw.Camobject.id));
                     }
                 }
             }
             catch
             {
             }
         }
         MasterFileList =
             MasterFileList.OrderByDescending(p => p.CreatedDateTicks).Take(Conf.PreviewItems).ToList();
         foreach (FilePreview fp in MasterFileList)
         {
             FilePreview fp1      = fp;
             var         filename = Conf.MediaDirectory + "video\\" + Cameras.Single(p => p.id == fp1.ObjectId).directory +
                                    "\\" + fp.Filename;
             FilePreview fp2   = fp;
             var         thumb = Conf.MediaDirectory + "video\\" + Cameras.Single(p => p.id == fp2.ObjectId).directory +
                                 "\\thumbs\\" + fp.Filename.Substring(0, fp.Filename.LastIndexOf(".")) + ".jpg";
             AddPreviewControl(thumb, filename, fp.Duration, (new DateTime(fp.CreatedDateTicks)), false);
         }
     }
 }
예제 #8
0
        private void RenderList(List <FilePreview> l, int pageCount)
        {
            flowPreview.SuspendLayout();
            mediaPanelControl1.lblPage.Text = String.Format("{0} / {1}", (MediaPanelPage + 1), pageCount);

            var currentList = new List <PreviewBox>();

            for (int i = 0; i < flowPreview.Controls.Count; i++)
            {
                var pb = flowPreview.Controls[i] as PreviewBox;
                if (pb != null)
                {
                    var cd = pb.CreatedDate;
                    if (NeedsMediaRebuild || l.Count(p => p.CreatedDateTicks == cd.Ticks) == 0)
                    {
                        flowPreview.Controls.Remove(pb);
                        pb.MouseDown  -= PbMouseDown;
                        pb.MouseEnter -= PbMouseEnter;
                        pb.Dispose();
                        i--;
                    }
                    else
                    {
                        currentList.Add(pb);
                    }
                }
                else
                {
                    var lb = flowPreview.Controls[i] as Label;
                    if (lb != null)
                    {
                        flowPreview.Controls.Remove(lb);
                        i--;
                    }
                }
            }

            int      ci        = 0;
            DateTime dtCurrent = DateTime.MinValue;
            bool     first     = true;

            foreach (FilePreview fp in l)
            {
                var dt = new DateTime(fp.CreatedDateTicks);
                if (first || dtCurrent.DayOfYear != dt.DayOfYear)
                {
                    first     = false;
                    dtCurrent = dt;
                    var lb = new Label {
                        Text = dtCurrent.ToShortDateString(), Margin = new Padding(3), Padding = new Padding(0), ForeColor = Color.White, BackColor = Color.Black, Width = 96, Height = 73, TextAlign = ContentAlignment.MiddleCenter
                    };
                    flowPreview.Controls.Add(lb);
                    flowPreview.Controls.SetChildIndex(lb, ci);
                    ci++;
                }
                var cdt = new DateTime(fp.CreatedDateTicks);
                var pb  = currentList.FirstOrDefault(p => p.CreatedDate == cdt);
                if (pb == null)
                {
                    FilePreview fp1 = fp;
                    var         dir = Helper.GetMediaDirectory(fp1.ObjectTypeId, fp1.ObjectId);
                    switch (fp1.ObjectTypeId)
                    {
                    case 1:
                        var v = Microphones.SingleOrDefault(p => p.id == fp1.ObjectId);
                        if (v != null)
                        {
                            var filename = dir + "audio\\" + v.directory + "\\" + fp.Filename;
                            pb = AddPreviewControl(fp1, Resources.audio, filename, v.name);
                        }
                        break;

                    case 2:
                        var c = Cameras.SingleOrDefault(p => p.id == fp1.ObjectId);
                        if (c != null)
                        {
                            var filename = dir + "video\\" + c.directory + "\\" + fp.Filename;
                            var thumb    = dir + "video\\" + c.directory + "\\thumbs\\" +
                                           fp.Filename.Substring(0,
                                                                 fp.Filename.LastIndexOf(".", StringComparison.Ordinal)) +
                                           ".jpg";
                            pb = AddPreviewControl(fp1, thumb, filename, c.name);
                        }
                        break;
                    }
                }
                if (pb != null)
                {
                    flowPreview.Controls.SetChildIndex(pb, ci);
                    ci++;
                }
            }

            flowPreview.ResumeLayout(true);
            NeedsMediaRebuild = false;
        }
예제 #9
0
        public void ЗагрузитьМеню()
        {
            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                for (int i = 0; i < 3; i++)
                {
                    try
                    {
                        using (RosService.Client client = new RosService.Client())
                        {
                            if (client.СведенияПользователя.ГруппаРаздел == 0)
                            {
                                throw new Exception("Интерфейс пользователя не задан в настройках");
                            }

                            var xamlLoaded = client.Архив.ПолучитьЗначение <string>(client.СведенияПользователя.ГруппаРаздел, "ИнтерфейсКод", Хранилище.Оперативное);
                            if (string.IsNullOrEmpty(xamlLoaded))
                            {
                                var query = new RosService.Data.Query();
                                query.ДобавитьУсловиеПоиска("НазваниеОбъекта", "БыстроеМеню", Query.Оператор.авно);
                                query.ДобавитьМестоПоиска(client.СведенияПользователя.ГруппаРаздел, 1);
                                var БыстроеМеню = client.Архив.Поиск(query, Хранилище.Оперативное).AsEnumerable().SingleOrDefault();
                                xamlLoaded      = client.Архив.ПолучитьЗначение <string>(БыстроеМеню.Field <decimal>("id_node"), "XamlКод", Хранилище.Оперативное);
                            }

                            if (string.IsNullOrEmpty(xamlLoaded))
                            {
                                return;
                            }

                            this.Dispatcher.Invoke(DispatcherPriority.Loaded, (Action <string>) delegate(string xaml)
                            {
                                try
                                {
                                    //var menu = System.Windows.Markup.XamlReader.Load(new System.Xml.XmlTextReader(new System.IO.StringReader(xaml))) as FrameworkElement;
                                    //if (menu is System.Windows.Controls.TabControl)
                                    if (xaml.StartsWith("<TabControl"))
                                    {
                                        //var tab = menu as System.Windows.Controls.TabControl;
                                        var oRow = PART_DocumentsHost.Items.Count - 1;
                                        foreach (var item in System.Xml.Linq.XDocument.Parse(xaml).Root.Elements())
                                        {
                                            var tag = item.Attribute("Tag").Value;
                                            if ("@@Главная".Equals(tag))
                                            {
                                                //ПользовательскоеМеню = RosControl.Helper.CloneElement<DependencyObject>(item.Content as DependencyObject);
                                                ПользовательскоеМеню = XamlReader.Parse(item.FirstNode.ToString()) as FrameworkElement;
                                            }
                                            else
                                            {
                                                var __Icon  = null as object;
                                                var strIcon = TryGetValue(item, "Icon");
                                                if (!string.IsNullOrEmpty(strIcon))
                                                {
                                                    __Icon = new FilePreview()
                                                    {
                                                        Mode = FilePreviewMode.Icon, id_node = strIcon
                                                    }
                                                }
                                                ;

                                                PART_DocumentsHost.Items.Insert(oRow++, new DocumentsTabItem()
                                                {
                                                    Header     = TryGetValue(item, "Header"),
                                                    Tag        = tag,
                                                    IsReadOnly = true,
                                                    Icon       = __Icon,
                                                    MinWidth   = 0,
                                                    ToolTip    = TryGetValue(item, "ToolTip"),
                                                    Navigation = XamlReader.Parse(item.FirstNode.ToString()) as FrameworkElement
                                                });
                                            }
                                        }
                                    }
                                    else
                                    {
                                        ПользовательскоеМеню = XamlReader.Parse(xaml) as FrameworkElement;
                                    }
                                    ЗагрузитьВкладки();
                                }
                                catch (Exception ex)
                                {
                                    ПользовательскоеМеню = new TextBlock()
                                    {
                                        Margin        = new Thickness(10),
                                        TextWrapping  = TextWrapping.Wrap,
                                        TextAlignment = TextAlignment.Center,
                                        Text          = ex.Message
                                    };
                                }
                            }, xamlLoaded);
                            break;
                        }
                    }
                    catch (TimeoutException)
                    {
                        System.Threading.Thread.Sleep(1000);
                        continue;
                    }
                    catch (Exception ex)
                    {
                        this.Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, (Action) delegate
                        {
                            ПользовательскоеМеню = new TextBlock()
                            {
                                Margin        = new Thickness(10),
                                TextWrapping  = TextWrapping.Wrap,
                                TextAlignment = TextAlignment.Center,
                                Text          = ex.Message
                            };
                        });
                    }
                }
            });
        }
예제 #10
0
        void FfmpegMergeProcessExited(object sender, EventArgs e)
        {
            if (_ffmpegProcess.ExitCode == 0)
            {
                if (_pbMerge.Count > 0)
                {
                    var ma = 0d;
                    var fi = new FileInfo(_dir + _outfile);


                    var alertData       = new StringBuilder();
                    int durationSeconds = 0;
                    foreach (var m in _pbMerge)
                    {
                        if (m.AlertData != "")
                        {
                            alertData.Append(m.AlertData);
                            alertData.Append(",");
                        }
                        durationSeconds += m.DurationSeconds;

                        if (m.MaxAlarm > ma)
                        {
                            ma = m.MaxAlarm;
                        }
                    }

                    var ff = new FilesFile
                    {
                        CreatedDateTicks     = DateTime.Now.Ticks,
                        DurationSeconds      = durationSeconds,
                        IsTimelapse          = false,
                        TriggerLevel         = _pbMerge.First().TriggerLevel,
                        TriggerLevelMax      = _pbMerge.First().TriggerLevelMax,
                        Filename             = _outfile,
                        AlertData            = Helper.GetMotionDataPoints(alertData),
                        MaxAlarm             = ma,
                        SizeBytes            = fi.Length,
                        IsMergeFile          = true,
                        IsMergeFileSpecified = true
                    };

                    string name;
                    if (_currentObject.Ot == 1)
                    {
                        var vl = MainClass.GetVolumeLevel(_currentObject.ID);
                        vl.AddFile(ff);
                        name = vl.Micobject.name;
                    }
                    else
                    {
                        var cw = MainClass.GetCameraWindow(_currentObject.ID);
                        cw.AddFile(ff);
                        name = cw.Camobject.name;

                        var fpv = _pbMerge.First();
                        //get preview image
                        string imgname = fpv.Filename.Substring(0,
                                                                fpv.Filename.LastIndexOf(".", StringComparison.Ordinal));
                        var imgpath = _dir + "thumbs/" + imgname + "_large.jpg";

                        if (File.Exists(imgpath))
                        {
                            Image bmpPreview = Image.FromFile(imgpath);

                            string jpgname = _dir + "thumbs\\" + ff.Filename.Substring(0,
                                                                                       ff.Filename.LastIndexOf(".", StringComparison.Ordinal));

                            bmpPreview.Save(jpgname + "_large.jpg", MainForm.Encoder,
                                            MainForm.EncoderParams);

                            Image.GetThumbnailImageAbort myCallback = ThumbnailCallback;
                            Image myThumbnail = bmpPreview.GetThumbnailImage(96, 72, myCallback, IntPtr.Zero);

                            myThumbnail.Save(jpgname + ".jpg", MainForm.Encoder,
                                             MainForm.EncoderParams);

                            myThumbnail.Dispose();
                            bmpPreview.Dispose();
                        }
                    }

                    var fp = new FilePreview(_outfile, durationSeconds, name, ff.CreatedDateTicks, _currentObject.Ot, _currentObject.ID, ma, false, true);
                    MainForm.MasterFileAdd(fp);
                    MainForm.NeedsMediaRefresh = Helper.Now;
                }
                _pbMerge.Clear();
            }
            else
            {
                Logger.LogErrorToFile("FFMPEG process exited with code " + _ffmpegProcess.ExitCode);
                MessageBox.Show(this, LocRm.GetString("ErrorCheckLogFile"));
            }
            DoClose();
        }
예제 #11
0
        private void RenderList(List <FilePreview> l, int pageCount)
        {
            var currentList = new List <PreviewBox>();



            int      ci        = 0;
            DateTime dtCurrent = DateTime.MinValue;
            bool     first     = true;

            foreach (FilePreview fp in l)
            {
                var dt = new DateTime(fp.CreatedDateTicks);
                if (first || dtCurrent.DayOfYear != dt.DayOfYear)
                {
                    first     = false;
                    dtCurrent = dt;
                    DateTime tag = new DateTime(dtCurrent.Year, dtCurrent.Month, dtCurrent.Day);
                    var      lb  = new Label {
                        Text = dtCurrent.ToShortDateString(), Tag = tag, Margin = new Padding(3), Padding = new Padding(0), ForeColor = Color.White, BackColor = Color.Black, Width = 96, Height = 73, TextAlign = ContentAlignment.MiddleCenter
                    };
                    lb.Click += Lb_Click;
                    lb.Cursor = Cursors.Hand;

                    ci++;
                }
                var cdt = new DateTime(fp.CreatedDateTicks);
                var pb  = currentList.FirstOrDefault(p => p.CreatedDate == cdt);
                if (pb == null)
                {
                    FilePreview fp1 = fp;
                    var         dir = Helper.GetMediaDirectory(fp1.ObjectTypeId, fp1.ObjectId);
                    switch (fp1.ObjectTypeId)
                    {
                    case 1:
                        var v = Microphones.SingleOrDefault(p => p.id == fp1.ObjectId);
                        if (v != null)
                        {
                            var filename = dir + "audio\\" + v.directory + "\\" + fp.Filename;
                            pb = AddPreviewControl(fp1, Resources.audio, filename, v.name);
                        }
                        break;

                    case 2:
                        var c = Cameras.SingleOrDefault(p => p.id == fp1.ObjectId);
                        if (c != null)
                        {
                            var filename = dir + "video\\" + c.directory + "\\" + fp.Filename;
                            var thumb    = dir + "video\\" + c.directory + "\\thumbs\\" +
                                           fp.Filename.Substring(0,
                                                                 fp.Filename.LastIndexOf(".", StringComparison.Ordinal)) +
                                           ".jpg";
                            pb = AddPreviewControl(fp1, thumb, filename, c.name);
                        }
                        break;
                    }
                }
                if (pb != null)
                {
                    ci++;
                }
            }


            NeedsMediaRebuild = false;
        }
예제 #12
0
        //-----Task for Feeding Lines to Serial Port
        private async Task FeedTask()
        {
            FeedActive = true;

            string s = "";
            int    i = 0;
            int    c = 0;

            await this.Dispatcher.RunAsync(DispatchPriority, () =>
            {
                i = FilePreview.SelectedIndex;
                c = FilePreview.Items.Count;
            });

            while (i < c)
            {
                //*****Update Controls in the UI thread*****
                await this.Dispatcher.RunAsync(DispatchPriority, () =>
                {
                    s = FilePreview.SelectedItem.ToString();
                });

                //This commented code was used to bypass the Datawriter for testing

                /*s = s += "\r\n";
                 * StringBuilder sb = new StringBuilder();
                 * sb.Insert(0, s);
                 * Windows.Storage.Streams.IBuffer b;
                 * byte[] ba1 = Encoding.UTF8.GetBytes(s);
                 * b = ba1.AsBuffer();
                 * uint x = await Port.OutputStream.WriteAsync(b);*/

                s = s += "\r\n";
                PortDataWriter.WriteString(s);

                Task <UInt32> storeAsyncTask;
                storeAsyncTask = PortDataWriter.StoreAsync().AsTask();    //<----This is where program hangs

                uint x = await storeAsyncTask;

                if (x != 0)
                {
                    i++;

                    if (i < c)
                    {
                        //*****Update Controls in the UI thread*****
                        await this.Dispatcher.RunAsync(DispatchPriority, () =>
                        {
                            FilePreview.SelectedIndex = i;
                            FilePreview.ScrollIntoView(FilePreview.SelectedItem);
                        });
                    }

                    else
                    {
                        //*****Update Controls in the UI thread*****
                        await this.Dispatcher.RunAsync(DispatchPriority, () =>
                        {
                            FilePreview.SelectedIndex = 0;
                            FilePreview.ScrollIntoView(FilePreview.SelectedItem);
                        });

                        EnableFeed = false;
                    }
                }

                if (EnableFeed == false)
                {
                    break;
                }
            }

            //*****Update Controls in the UI thread*****
            await this.Dispatcher.RunAsync(DispatchPriority, () =>
            {
                SingleBtn.IsEnabled = true;
                FeedBtn.Icon        = new SymbolIcon(Symbol.Play);
            });

            FeedActive = false;
        }