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()); }
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); }
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); }
public async Task <bool> HasRss(string guid) { return(await Rsses.Where(r => r.Guid == guid).CountAsync() > 0); }