Exemple #1
0
        public async Task <IActionResult> SubscribeFeed([FromBody] FeedSubscription data)
        {
            //var user = await _userManager.GetUserAsync(User);
            var user = await db.Users.FirstOrDefaultAsync();

            var subsc = await db.Subscriptions.FirstOrDefaultAsync(s => s.UserId == user.UserId && s.auth == data.subscription.keys.auth);

            if (subsc == null)
            {
                return(NotFound());
            }
            if (data.subscribe)
            {
                var subscribedFeed = new UserSubscribedFeed
                {
                    UserId         = user.UserId,
                    FeedId         = data.feedId,
                    SubscriptionId = subsc.SubscriptionId
                };
                db.UserSubscribedFeeds.Add(subscribedFeed);
            }
            else
            {
                var subscribedFeed = await db.UserSubscribedFeeds.FirstOrDefaultAsync(uf => uf.FeedId == data.feedId && uf.UserId == user.UserId && uf.SubscriptionId == subsc.SubscriptionId);

                db.UserSubscribedFeeds.Remove(subscribedFeed);
            }
            await db.SaveChangesAsync();

            return(Ok());
        }
Exemple #2
0
 public static FeedSubscriptionModel Map(FeedSubscription feedSubscription)
 {
     return(new FeedSubscriptionModel
     {
         Id = feedSubscription.Id,
         Title = feedSubscription.Title
     });
 }
Exemple #3
0
        public async Task AddSubscription(FeedSubscription feedSubscription)
        {
            if (feedSubscription == null)
            {
                throw new ArgumentNullException(nameof(feedSubscription));
            }

            this.dbContext.FeedSubscriptions.Add(feedSubscription);
            await this.dbContext.SaveChangesAsync();
        }
        private FeedSubscription TransformToFeedSubscription(FeedSubscriptionEntity feedSubscriptionEntity)
        {
            var feedSubscription = new FeedSubscription
            {
                Title          = feedSubscriptionEntity.RowKey,
                Description    = feedSubscriptionEntity.Description,
                Url            = feedSubscriptionEntity.Url,
                ImageUrl       = feedSubscriptionEntity.ImageUrl,
                LastUpdated    = feedSubscriptionEntity.LastUpdated,
                KeyPhrases     = BuildStringListFromCommaDelimitedString(feedSubscriptionEntity.KeyPhrases),
                SubscribedDate = feedSubscriptionEntity.SubscribedDate,
            };

            int.TryParse(feedSubscriptionEntity.PartitionKey, out var subscriptionId);
            feedSubscription.Id = (subscriptionId > 0) ? subscriptionId : 0;

            return(feedSubscription);
        }
Exemple #5
0
        private static async Task <IFeedSubscription> BuildFeedSubscriptionResponse(Feed feed)
        {
            var feedSubscription = new FeedSubscription
            {
                Title          = feed.Title,
                Description    = feed.Description,
                Url            = feed.Link,
                ImageUrl       = feed.ImageUrl,
                LastUpdated    = feed.LastUpdatedDate,
                SubscribedDate = DateTime.Now,
                FeedItems      = new List <VprFeedItem>()
            };

            if (!string.IsNullOrEmpty(feedSubscription.Description))
            {
                feedSubscription.KeyPhrases = await ExtractKeyPhrasesAsync(feedSubscription.Description);
            }

            feedSubscription = await ScoreFeedAsync(feedSubscription);

            if (feed.Items.Count == 0)
            {
                return(feedSubscription);
            }

            foreach (var feedItem in feed.Items)
            {
                var vprFeedItem = new VprFeedItem
                {
                    Author               = feedItem.Author,
                    Categories           = feedItem.Categories,
                    Content              = feedItem.Content,
                    Description          = feedItem.Description,
                    Link                 = feedItem.Link,
                    PublishingDate       = feedItem.PublishingDate,
                    PublishingDateString = feedItem.PublishingDateString,
                    Title                = feedItem.Title
                };

                feedSubscription.FeedItems.Add(vprFeedItem);
            }

            return(feedSubscription);
        }
Exemple #6
0
        public static async Task <FeedSubscription> ScoreFeedAsync(FeedSubscription feed)
        {
            var result = feed;

            try
            {
                var uri = new Uri(ScoreFeedUri);

                var response = await FuncHttpClient.PostAsync(uri, new StringContent(JsonConvert.SerializeObject(feed),
                                                                                     Encoding.UTF8, "application/json"));

                result = JsonConvert.DeserializeObject <FeedSubscription>(await response.Content.ReadAsStringAsync());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(result);
        }
Exemple #7
0
        protected override void ParseSubscription()
        {
            if (txtName.Text.Trim() == "" || txtURL.Text.Trim() == "")
            {
                MessageBox.Show(i18n.FillFeedNameAndUrlFieldsMessage, i18n.AllFieldsRequiredTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.OnSubscriptionParsed(new SubscriptionParsedEventArgs(false));
                return;
            }

            if (Subscriptions.Instance.Dictionary.ContainsKey(txtURL.Text))
            {
                MessageBox.Show(string.Format(i18n.FeedSubscriptionAlreadyExists, Subscriptions.Instance.Dictionary[txtURL.Text].Name), i18n.SubscriptionExists, MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.OnSubscriptionParsed(new SubscriptionParsedEventArgs(false));
                return;
            }

            try
            {
                var subscription = new FeedSubscription {Name = txtName.Text, Url = txtURL.Text};

                using (var feed = new Feed(subscription))
                {
                    if (!feed.IsValid())
                    {
                        MessageBox.Show(i18n.ErrorParsingFeedMessage, i18n.ErrorParsingFeedTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        this.OnSubscriptionParsed(new SubscriptionParsedEventArgs(false));
                        return;
                    }
                }

                this.OnSubscriptionParsed(new SubscriptionParsedEventArgs(true, subscription));
            }
            catch(Exception)
            {
                MessageBox.Show(i18n.ErrorParsingFeedMessage, i18n.ErrorParsingFeedTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.OnSubscriptionParsed(new SubscriptionParsedEventArgs(false));
            }
        }
        private FeedSubscription TransformToFeedSubscription(IFeedSubscriptionDo feedSubscriptionDo)
        {
            var feedSubscription = new FeedSubscription
            {
                Id             = feedSubscriptionDo.Id,
                Title          = feedSubscriptionDo.Title,
                Description    = feedSubscriptionDo.Description,
                Url            = feedSubscriptionDo.Url,
                ImageUrl       = feedSubscriptionDo.ImageUrl,
                LastUpdated    = feedSubscriptionDo.LastUpdated,
                KeyPhrases     = BuildStringListFromCommaDelimitedString(feedSubscriptionDo.KeyPhrases),
                SubscribedDate = feedSubscriptionDo.SubscribedDate,
                //FeedItems = new List<VprFeedItem>()
            };

            //if (feedSubscriptionDo.FeedItems == null) return feedSubscription;
            //foreach (var feedItem in feedSubscriptionDo.FeedItems)
            //{
            //    var vprFeedItem = new VprFeedItem
            //    {
            //        Id = feedItem.Id,
            //        Author = feedItem.Author,
            //        Categories = feedItem.Categories,
            //        Content = feedItem.Content,
            //        Description = feedItem.Description,
            //        FeedSubscriptionDoId = feedItem.FeedSubscriptionDoId,
            //        Link = feedItem.Link,
            //        PublishingDate = feedItem.PublishingDate,
            //        PublishingDateString = feedItem.PublishingDateString,
            //        Title = feedItem.Title
            //    };

            //    feedSubscription.FeedItems.Add(vprFeedItem);
            //}

            return(feedSubscription);
        }
Exemple #9
0
 public ListviewFeedSubscription(FeedSubscription feedSubscription)
 {
     this._feedSubscription = feedSubscription;
     this.Text = feedSubscription.Name;
     this.SubItems.Add(feedSubscription.Url);
 }
Exemple #10
0
        public async Task <float> ScoreFeed([FromBody] FeedSubscription feedSubscription)
        {
            var modelBuilder = new ModelBuilder.ModelBuilder(_repository);

            return(await modelBuilder.ScoreFeed(feedSubscription));
        }
Exemple #11
0
 public async Task Post([FromBody] FeedSubscription feedSubscription)
 {
     await _repository.SaveFeedSubscriptionAsync(feedSubscription);
 }