Esempio n. 1
0
 public ActionResult Create(TimeLink link)
 {
     try
     {
         if (link.Name == null)
         {
             link.Name = Tools.LinkGenerate(context);
         }
         if (!Tools.Unique(context, link.Name) || link.Time < DateTime.Now)
         {
             return(RedirectToAction(nameof(Create)));
         }
         context.TimeLinks.Add(link);
         context.SaveChanges();
         return(RedirectToAction(nameof(Index)));
     }
     catch
     {
         return(RedirectToAction(nameof(Create)));
     }
 }
Esempio n. 2
0
        /// <summary>
        /// 自动摘要
        /// </summary>
        /// <param name="categoryName">关键词组名</param>
        /// <param name="time">查询时间</param>
        /// <param name="projectId">项目Id</param>
        /// <param name="source">折线图返回自动摘要时使用</param>
        /// <returns></returns>
        public List <string> GetSummary(string categoryName, string time, string projectId, string source)
        {
            List <string> result = new List <string>();


            string text = "";       //自动摘要使用文本

            if (source == null)
            {
                //拆分projectId,判断是否为多项目
                var proObjIds = CommonTools.GetObjIdListFromStr(projectId);
                //获取起止时间
                DateTime endTime = new DateTime();
                DateTime.TryParse(time, out endTime);
                DateTime startTime = endTime.AddDays(-1);

                //获取词组ID
                var builderCatId = Builders <Dnl_KeywordCategory> .Filter;
                var filterCatId  = builderCatId.Eq(x => x.Name, categoryName);
                filterCatId &= builderCatId.In(x => x.ProjectId, proObjIds);
                var categoryId = MongoDBHelper.Instance.GetDnl_KeywordCategory().Find(filterCatId).Project(x => x._id).FirstOrDefault();

                //获取关键词ID列表
                var builderKey  = Builders <Dnl_KeywordMapping> .Filter;
                var filterKey   = builderKey.Eq(x => x.CategoryId, categoryId);
                var keywordList = MongoDBHelper.Instance.GetDnl_KeywordMapping().Find(filterKey).Project(x => x.KeywordId.ToString()).ToList();

                //获取项目内已删除的链接Id
                var builderLinkMap = Builders <Dnl_LinkMapping_Baidu> .Filter;
                var filterLinkMap  = builderLinkMap.In(x => x.ProjectId, proObjIds) & builderLinkMap.Eq(x => x.DataCleanStatus, (byte)2);
                var exLinkObjIds   = MongoDBHelper.Instance.GetDnl_LinkMapping_Baidu().Find(filterLinkMap).Project(x => x.LinkId).ToList();     //项目中已删除的链接ID列表

                //获取链接标题及摘要
                var builder = Builders <Dnl_Link_Baidu> .Filter;
                var filter  = builder.In(x => x.SearchkeywordId, keywordList) & builder.Ne(x => x.PublishTime, "");
                filter &= builder.Nin(x => x._id, exLinkObjIds);
                var queryDatas = MongoDBHelper.Instance.GetDnl_Link_Baidu().Find(filter).Project(x => new
                {
                    Title       = x.Title,
                    Description = x.Description,
                    PublishTime = x.PublishTime
                }).ToList();

                //获取起止时间内数据
                List <TimeLink> LinkInfo = new List <TimeLink>();
                foreach (var gr in queryDatas)
                {
                    TimeLink v = new TimeLink();
                    v.Title       = gr.Title;
                    v.Description = gr.Description;
                    DateTime dt = new DateTime();
                    DateTime.TryParse(gr.PublishTime, out dt);
                    v.PublishTime = dt;
                    LinkInfo.Add(v);
                }
                LinkInfo = LinkInfo.Where(x => x.PublishTime > startTime && x.PublishTime <= endTime).ToList();
                foreach (var x in LinkInfo)
                {
                    text += x.Title + "。" + System.Environment.NewLine;
                    text += x.Description + "。" + System.Environment.NewLine;
                }
            }
            else
            {
                text = source;
            }

            GetList(text, 3, 1);

            foreach (var i in keySentenceList)
            {
                result.Add(AllsentenceList[i]);
            }
            return(result);
        }