Exemplo n.º 1
0
 /// <summary>
 /// cant be already in the channel, have a null name, or have a bad url
 /// </summary>
 /// <param name="feed"></param>
 public void AddFeed(Feed feed)
 {
     if (!Feeds.Contains(feed) && feed!= null)
     {
         Feeds.Add(feed);
     }
 }
    /// <summary>
    /// The call at the ui level
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void AddFeedMenuItem_OnClick(object sender, RoutedEventArgs e)
    {
      // Get user input
      AddFeedWindow addFeedWindow = new AddFeedWindow();
      addFeedWindow.ShowDialog();

      if (addFeedWindow.DialogResult == true)
      {
        // Create feed and and add it to the engine
        Feed newFeed = new Feed(addFeedWindow.Feed.Item1, addFeedWindow.Feed.Item2, UpdateListCallBack, TaskScheduler.FromCurrentSynchronizationContext());
        Subscriptions.AddFeed(newFeed);

        newFeed.treeViewItem.ContextMenu.Items.Add(MakeContextMenuItem(RemoveGestureText, RemoveMenuOption));

        // Add to UI
        ContentTreeView.Items.Add(newFeed.treeViewItem);
      }
    }
        /// <summary>
        /// Determines if we should return filtered or normal
        /// </summary>
        /// <param name="feed"></param>
        /// <returns></returns>
        public static List<Article> GetFilteredArticles(Feed feed)
        {
            if (feed == null)
            {
                return null;
            }

            var articles =
                    Filter
                    ? (from article in feed.Articles.ToList()
                       where FilterArticlesByDate(article)
                       select article).ToList()
                    : feed.Articles.ToList();

            return UnreadOnly
                ? (from article in articles
                  where article.HasBeenRead == "unread"
                  select article).ToList()
                : articles;
        }
    private void AddFeedItem(object sender, RoutedEventArgs e)
    {
      //this is NOT a good way to do this 
      TreeViewItem parent = ContentTreeView.SelectedItem as TreeViewItem;

      if (parent != null)
      {
        AddFeedWindow addFeedWindow = new AddFeedWindow();
        addFeedWindow.ShowDialog();

        if (true == addFeedWindow.DialogResult)
        {
          Feed newFeed = new Feed(addFeedWindow.Feed.Item1, addFeedWindow.Feed.Item2, UpdateListCallBack, TaskScheduler.FromCurrentSynchronizationContext());
          newFeed.treeViewItem.ContextMenu.Items.Add(MakeContextMenuItem(RemoveGestureText, RemoveMenuOption));
          parent.Items.Add(newFeed);
        }
      }
    }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void AddFeedItemToParent(object sender, RoutedEventArgs e)
        {
            // Get user input
            var addFeedWindow = new HelperWindows.AddFeedWindow();
            addFeedWindow.ShowDialog();

            if (addFeedWindow.DialogResult == true)
            {
                // Create feed and and add it to the engine
                Feed newFeed = new Feed(addFeedWindow.Feed.Item1, addFeedWindow.Feed.Item2);
                _subscriptions.AddFeed(newFeed);

                TreeViewItem feedViewItem = MakeTreeViewItem(newFeed.Name);
                
                feedViewItem.ContextMenu.Items.Add(MakeContextMenuItem(RemoveGestureText, RemoveMenuOption));
                feedViewItem.ContextMenu.Items.Add(MakeContextMenuItem(RenameGesureText, RenameMenuOption));

                // Add to UI
                TreeView.Items.Add(feedViewItem);
            }
        }
        /// <summary>
        /// Adds a feed to the visual tree
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void AddFeedItem(object sender, RoutedEventArgs e)
        {
            TreeViewItem parent = TreeView.SelectedItem as TreeViewItem;

            if (parent != null)
            {
                HelperWindows.AddFeedWindow addFeedWindow = new HelperWindows.AddFeedWindow();
                addFeedWindow.ShowDialog();

                if (true == addFeedWindow.DialogResult)
                {
                    Feed newFeed = new Feed(addFeedWindow.Feed.Item1, addFeedWindow.Feed.Item2);
                    AddFeed(newFeed);

                    TreeViewItem feedViewItem = MakeTreeViewItem(newFeed.Name);
                    
                    feedViewItem.ContextMenu.Items.Add(MakeContextMenuItem(RemoveGestureText, RemoveMenuOption));
                    try
                    {
                        parent.Items.Add(feedViewItem);
                    }
                    catch (InvalidOperationException)
                    {
                        ((TreeViewItem)parent.Parent)?.Items.Add(feedViewItem);
                    }

                    var subscriptionParent = _subscriptions.SearchForChannel(parent.Header.ToString());

                    subscriptionParent?.AddFeed(newFeed);
                }
            }
        }
        /// <summary>
        /// tester for Facade
        /// </summary>
        public static void AddFeedToTree()
        {
            var createFeedWindow = new HelperWindows.AddFeedWindow();
            createFeedWindow.ShowDialog();

            if (createFeedWindow.DialogResult == true)
            {
                // Create feed and add it
                var feed = new Feed(createFeedWindow.Feed.Item1, createFeedWindow.Feed.Item2);

                var feedViewItem = MakeTreeViewItem(createFeedWindow.Feed.Item1);

                feedViewItem.ContextMenu.Items.Add(MakeContextMenuItem(RemoveGestureText, RemoveMenuOption));

                if (SelectedTreeViewItem != null)
                {
                    var channel = _subscriptions.SearchForChannel(((TreeViewItem)SelectedTreeViewItem)?.Header.ToString());
                    if (channel != null)
                    {
                        channel.AddFeed(feed);
                        (SelectedTreeViewItem as TreeViewItem).Items.Add(feedViewItem);
                    }
                }
                else
                {
                    TreeView.Items.Add(feedViewItem);
                }
                

                _subscriptions.AddFeed(feed);
            }
        }
        /// <summary>
        /// Add a feed to the tree and subscription object
        /// </summary>
        /// <remarks>
        /// Mainly used in facade
        /// </remarks>
        public static void AddFeedToTree(Tuple<TreeViewItem, Channel> parent)
        {
            var createFeedWindow = new HelperWindows.AddFeedWindow();
            createFeedWindow.ShowDialog();

            if (createFeedWindow.DialogResult == true)
            {
                // Create feed and add it
                var feed = new Feed(createFeedWindow.Feed.Item1, createFeedWindow.Feed.Item2);

                var feedViewItem = MakeTreeViewItem(createFeedWindow.Feed.Item1);

                feedViewItem.ContextMenu.Items.Add(MakeContextMenuItem(RemoveGestureText, RemoveMenuOption));

                if (parent != null)
                {
                    parent.Item2?.AddFeed(feed);
                    parent.Item1.Items.Add(feedViewItem);
                }
                else
                {
                    TreeView.Items.Add(feedViewItem);
                }
            
                _subscriptions.AddFeed(feed);
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Move a feed from a channel
        /// </summary>
        /// <param name="feed"></param>
        /// <param name="channel"></param>
        /// <remarks>
        /// If a feed exists in a channel, remove it from the channel and return the same feed, otherwise return null
        /// </remarks>
        public Feed MoveFromChannel(Feed feed, Channel channel)
        {
            Feed feedToRemove = null;

            if (channel.Feeds.Contains(feed))
            {
                channel.Feeds.Remove(feed);
                feedToRemove = feed;
            }

            return feedToRemove;
        }
Exemplo n.º 10
0
 /// <summary>
 /// Moves a feed to a channel
 /// </summary>
 /// <param name="feed"></param>
 /// <param name="channel"></param>
 public void MoveToChannel(Feed feed, Channel channel)
 {
     channel.Feeds.Add(feed);
 }
Exemplo n.º 11
0
 /// <summary>
 /// Adds a given feed to a given channel
 /// </summary>
 /// <param name="feed"></param>
 /// <param name="channel"></param>
 public void AddFeedtoChannel(Feed feed, Channel channel)
 {
     channel.Feeds.Add(feed);
 }
Exemplo n.º 12
0
 /// <summary>
 /// Removes a given feed from a given channel
 /// </summary>
 /// <param name="feed"></param>
 /// <param name="channel"></param>
 public void RemoveFeedfromChannel(Feed feed, Channel channel)
 {
     channel.Feeds.Remove(feed);
 }
Exemplo n.º 13
0
 /// <summary>
 /// removes a feed
 /// </summary>
 /// <param name="feed"></param>
 public void RemoveFeed(Feed feed)
 {
     if (ItemList.Contains(feed))
     {
         ItemList.Remove(feed);
         feed.PropertyChanged -= OnFeedChanged;
     }
 }
Exemplo n.º 14
0
 /// <param name="feed"></param>
 public void AddFeed(Feed feed)
 {
     if (!ItemList.Contains(feed))
     {
         feed.RefreshRate = RefreshRate;
         ItemList.Add(feed);
         feed.PropertyChanged += OnFeedChanged;
     }
 }
 /// <summary>
 /// Adds a feed
 /// </summary>
 /// <param name="feed"></param>
 public static void AddFeed(Feed feed)
 {
     _subscriptions.AddFeed(feed);
 }
Exemplo n.º 16
0
 /// <summary>
 /// Removes a feed
 /// </summary>
 /// <param name="feed"></param>
 public void RemoveFeed(Feed feed)
 {
     if ((_name != null) && Feeds.Contains(feed))
     {
         Feeds.Remove(feed);
     }
 }