public static void RemoveLink(int userId, int sourceContentId) { using (Models.ICContext context = new Models.ICContext()) { var UserSourceContentLink = context.UserSourceContentLinks.Where(p => p.UserId == userId && p.SourceContentId == sourceContentId).FirstOrDefault(); if (UserSourceContentLink != null) { context.UserSourceContentLinks.Remove(UserSourceContentLink); context.SaveChanges(); } } }
public static void AddFavorLink(int userId, int sourceContentId) { using (Models.ICContext context = new Models.ICContext()) { var UserSourceContentFavorLink = context.UserSourceContentFavorLinks.Where(p => p.UserId == userId && p.SourceContentId == sourceContentId).FirstOrDefault(); if (UserSourceContentFavorLink == null) { context.UserSourceContentFavorLinks.Add(new Models.UserSourceContentFavorLink { UserId = userId, SourceContentId = sourceContentId }); context.SaveChanges(); } } }
public static void AddSource(int company, int userId, Models.SourceView userSource) { if (string.IsNullOrEmpty(userSource.SourceName) || string.IsNullOrEmpty(userSource.Url)) { throw new ArgumentException("任务名称和任务地址不能为空!"); } if (!(userSource.Url.StartsWith("http://") || userSource.Url.StartsWith("https://"))) { userSource.Url = "http://" + userSource.Url; } using (Models.ICContext context = new Models.ICContext()) { if (userSource.SourceId > 0) { var sourceInDB = context.UserSourceLinks.Where(p => p.UserId == userId && p.SourceId == userSource.SourceId).FirstOrDefault(); if (sourceInDB != null) { sourceInDB.SourceName = userSource.SourceName; sourceInDB.Interval = userSource.Interval; context.SaveChanges(); } } else { var sourceInDB = context.Sources.Where(p => p.Url == userSource.Url).FirstOrDefault(); Models.UserSourceLink userSourceLinkInDB = null; if (sourceInDB == null) { Models.Source source = new Models.Source() { SourceName = userSource.SourceName, Url = userSource.Url, Domain = GetDomain(userSource.Url), Interval = userSource.Interval, CreateTime = DateTime.Now, Company = company, SourceType = 1 }; source.SourceUrls.Add(new Models.SourceUrl { Url = userSource.Url, Enabled = true }); source.UserSourceLinks.Add(new Models.UserSourceLink() { Source = sourceInDB, SourceName = userSource.SourceName, Interval = userSource.Interval, UserId = userId, CreateTime = DateTime.Now, UpdateTime = DateTime.Now }); context.Sources.Add(source); context.SaveChanges(); // collect system info SourceContentManager.ReloadSourceRegexes(); SourceContentManager.Collect(source, DateTime.Now, SourceContentType.System); } else { userSourceLinkInDB = sourceInDB.UserSourceLinks.Where(p => p.UserId == userId).FirstOrDefault(); if (userSourceLinkInDB == null) { userSourceLinkInDB = new Models.UserSourceLink() { SourceName = userSource.SourceName, Interval = userSource.Interval, Source = sourceInDB, UserId = userId, CreateTime = DateTime.Now, UpdateTime = DateTime.Now }; sourceInDB.UserSourceLinks.Add(userSourceLinkInDB); context.SaveChanges(); var queryDate = DateTime.Now.Date.AddMonths(-1); var sourceCotents = context.SourceContents.Where(p => p.SourceId == sourceInDB.SourceId && p.SourceDate >= queryDate).ToList(); if (sourceCotents.Count > 0) { foreach (var sourceContent in sourceCotents) { sourceContent.UserSourceContentLinks.Add(new Models.UserSourceContentLink { UserId = userId }); } } context.SaveChanges(); } } } } }