private void ChooseMergeItem(string id, KeyedCollection<string, SubscriptionItem> previousAuxList, KeyedCollection<string, FeedItem> currentAuxList, MergeResult result)
 {
     var previous = previousAuxList.Take(id);
     var current = currentAuxList.Take(id);
     if (previous.LastUpdatedTime == current.LastUpdatedTime)
     {
         result.AddItem(previous, ItemMergeStatus.NoChangedItem);
     }
     else
     {
         previous.Update(current);
         result.AddItem(previous, ItemMergeStatus.UpdatedItem);
     }
 }
 public MergeResult Merge(IEnumerable<SubscriptionItem> oldItems, IEnumerable<FeedItem> newItems)
 {
     var items = newItems.Select(x =>
     {
         var item = new SubscriptionItem(Subscription)
         {
             Id = x.Id,
             PublishDate = x.PublishDate,
             LastUpdatedTime = x.LastUpdatedTime,
             Summary = x.Summary,
             Title = x.Title,
             Categories = x.Categories
         };
         item.Links = x.Links.Select(y => new SubscriptionItemLink(item)
         {
             Length = y.Length,
             MediaType = y.MediaType,
             RelationshipType = y.RelationshipType,
             Title = y.Title,
             Uri = y.Uri
         }).ToList();
         return item;
     });
     var result = new MergeResult();
     foreach (var item in items)
         result.AddItem(item, ItemMergeStatus.NewItem);
     return result;
 }
 private void ChooseRemovedItem(string id, KeyedCollection<string, SubscriptionItem> previousAuxList, MergeResult result)
 {
     result.AddItem(previousAuxList.Take(id), ItemMergeStatus.RemovedItem);
 }
 private void ChooseNewItem(string id, KeyedCollection<string, FeedItem> currentAuxList, MergeResult result)
 {
     result.AddItem(new SubscriptionItem(currentAuxList.Take(id)), ItemMergeStatus.NewItem);
 }