コード例 #1
0
        /// <summary>
        /// Updates the display of a feed detail if anything has changed.
        /// </summary>
        /// <param name="feed"></param>
        /// <param name="feedDetail"></param>
        /// <param name="forceRefresh"></param>
        private void UpdateFeedDisplay(FeedStatus feed, FeedDetail feedDetail, bool forceRefresh)
        {
            var item = feedDetail.ListViewItem;

            if (forceRefresh || feed.Name != feedDetail.Name)
            {
                item.SubItems[0].Text = feed.Name;
                feedDetail.Name       = feed.Name;
            }

            if (forceRefresh || feed.ConnectionStatus != feedDetail.ConnectionStatus)
            {
                item.SubItems[1].Text       = feed.ConnectionStatusDescription;
                feedDetail.ConnectionStatus = feed.ConnectionStatus;
            }

            if (forceRefresh || feed.TotalMessages != feedDetail.TotalMessages)
            {
                item.SubItems[2].Text    = feed.TotalMessages.ToString("N0");
                feedDetail.TotalMessages = feed.TotalMessages;
            }

            if (forceRefresh || feed.TotalBadMessages != feedDetail.TotalBadMessages)
            {
                item.SubItems[3].Text       = feed.TotalBadMessages.ToString("N0");
                feedDetail.TotalBadMessages = feed.TotalBadMessages;
            }

            if (forceRefresh || feed.HasAircraftList != feedDetail.HasAircraftList || feed.TotalAircraft != feedDetail.AircraftCount)
            {
                item.SubItems[4].Text    = feed.HasAircraftList ? feed.TotalAircraft.ToString("N0") : Strings.NotApplicableAbbr;
                feedDetail.AircraftCount = feed.TotalAircraft;
            }
        }
コード例 #2
0
        /// <summary>
        /// Updates all existing feeds in the list or adds new ones, removing existing ones from <paramref name="feedDetails"/>.
        /// </summary>
        /// <param name="feeds"></param>
        /// <param name="feedDetails"></param>
        private void AddOrUpdateExistingFeeds(FeedStatus[] feeds, List <FeedDetail> feedDetails)
        {
            foreach (var feed in feeds)
            {
                var feedDetail = feedDetails.FirstOrDefault(r => r.UniqueId == feed.FeedId);
                if (feedDetail != null)
                {
                    feedDetail.HasPolarPlotter = feed.HasPolarPlot;
                    feedDetail.HasAircraftList = feed.HasAircraftList;
                    feedDetails.Remove(feedDetail);
                    UpdateFeedDisplay(feed, feedDetail, forceRefresh: false);
                }
                else
                {
                    feedDetail = new FeedDetail()
                    {
                        UniqueId        = feed.FeedId,
                        IsMergedFeed    = feed.IsMergedFeed,
                        HasPolarPlotter = feed.HasPolarPlot,
                        HasAircraftList = feed.HasAircraftList,
                        ListViewItem    = new ListViewItem(new string[] { "", "", "", "", "" }),
                    };
                    feedDetail.ListViewItem.Tag = feedDetail;
                    UpdateFeedDisplay(feed, feedDetail, forceRefresh: true);

                    listView.Items.Add(feedDetail.ListViewItem);
                }
            }
        }