コード例 #1
0
 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();
         }
     }
 }
コード例 #2
0
 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();
         }
     }
 }
コード例 #3
0
        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();
                        }
                    }
                }
            }
        }