コード例 #1
0
 public async Task <List <Rss> > RssForClient(int clientId, int startId, DateTime minDate)
 {
     return(await Rsses.Where(r => r.RssId > startId && r.PubDate >= minDate)
            .Where(r => r.RssToTags
                   .Where(rt => rt.Tag.ClientToTags
                          .Where(ct => ct.ClientFk == clientId)
                          .Count() > 0).Count() > 0)
            .Include(r => r.RssToTags)
            .ThenInclude(t => t.Tag)
            .ToListAsync());
 }
コード例 #2
0
        public async Task <int> CreateRss(string guid, string xml, DateTime date)
        {
            var rss = await Rsses.Where(r => r.Guid == guid).FirstOrDefaultAsync();

            if (rss == null)
            {
                rss = new Rss()
                {
                    Guid = guid, FeedXml = xml, PubDate = date
                };
                Rsses.Add(rss);
                await SaveChangesAsync();
            }
            return(rss.RssId);
        }
コード例 #3
0
        public async Task <bool> RssAddTag(int rssId, string tag)
        {
            var rss = await Rsses.Where(r => r.RssId == rssId).FirstOrDefaultAsync();

            if (rss != null)
            {
                var tg = await Tags.Where(t => t.TagName == tag).FirstOrDefaultAsync();

                if (tg == null)
                {
                    tg = new Tag()
                    {
                        TagName = tag
                    };
                    Tags.Add(tg);
                    await SaveChangesAsync();

                    RssToTag rst = new RssToTag()
                    {
                        TagFk = tg.TagId, RssFk = rss.RssId
                    };
                    RssesToTags.Add(rst);
                    await SaveChangesAsync();

                    return(true);
                }
                else
                {
                    if (await RssesToTags.Where(r => r.RssFk == rssId && r.TagFk == tg.TagId).CountAsync() == 0)
                    {
                        RssToTag rst = new RssToTag()
                        {
                            TagFk = tg.TagId, RssFk = rss.RssId
                        };
                        RssesToTags.Add(rst);
                        await SaveChangesAsync();
                    }
                }
                return(true);
            }
            return(false);
        }
コード例 #4
0
 public async Task <bool> HasRss(string guid)
 {
     return(await Rsses.Where(r => r.Guid == guid).CountAsync() > 0);
 }