示例#1
0
 /// <summary>
 /// 判断数据库中是否存在当前内容,建议改为异步操作
 /// 返回参数:
 /// 存在 返回UserDictionary.Passage
 /// 不存在返回 null
 /// </summary>
 /// <param name="passage"></param>
 /// <returns></returns>
 public static UserDictionary.Passage ifExsist(ExReaderPlus.Manage.PassageManager.Passage passage)
 {
     using (var db = new DataContext())
     {
         db.Database.Migrate();
         string _abstract;
         _abstract = getAbstract(passage.Content);
         var passages = db.Passages;    //读入内存增加查询速度
         db.Database.CloseConnection();
         var savePassageInfo = passages //用于传入保存函数的文章信息,主要用来获取数据库自动生成的id
                               .Where(p => p.Name.Equals(passage.HeadName))
                               .Where(p => p.Abstract.Equals(_abstract))
                               .Where(p => p.RemainWords.Equals(passage.Content.Length.ToString()))
                               .FirstOrDefault();//通过文章名字和文章摘要查找文章来获取新建的ID
         return(savePassageInfo);
     }
 }
示例#2
0
 /// <summary>
 /// 存储文章到书架,并且把文章缓存到路径
 /// 传入参数
 /// 【1】文章(包含文章内容和文章标题)
 /// 传出参数
 /// 异常 -1
 /// 成功 1
 /// 有文件、数据库操作,建议异步
 ///  FIXME TODO
 /// </summary>
 /// <param name="passage"></param>
 /// <returns></returns>
 public static int SavaPassageInfoAndPassage(ExReaderPlus.Manage.PassageManager.Passage passage)
 {
     using (var db = new DataContext())
     {
         var returnPassageInfo = ifExsist(passage);
         if (returnPassageInfo == null)//如果文章不存在,就新建文章条目
         {
             db.Database.Migrate();
             var passageInfo = new UserDictionary.Passage();
             passageInfo.Name         = passage.HeadName;
             passageInfo.LastReadTime = System.DateTime.Now;//写入时间
             passageInfo.Abstract     = getAbstract(passage.Content);
             passageInfo.RemainWords  = passage.Content.Length.ToString();
             //C#中int最大为2^32-1不考虑超过的情况
             db.Passages.Add(passageInfo);//存入文件信息
             try
             {
                 db.SaveChanges();
             }
             catch
             {
                 return(-1);
             }
             finally
             {
                 db.Database.CloseConnection();
             }
             db.Database.Migrate();
             var savePassageInfo = db.Passages                                                            //用于传入保存函数的文章信息,主要用来获取数据库自动生成的id
                                   .Where(p => p.Name.Equals(passageInfo.Name))
                                   .Where(p => p.Abstract.Equals(passageInfo.Abstract)).FirstOrDefault(); //通过文章名字和文章摘要查找文章来获取新建的ID
             ExReaderPlus.PassageIO.PassageIO passageIO = new ExReaderPlus.PassageIO.PassageIO();
             try
             {
                 passageIO.SavaPassage(passage, savePassageInfo);//根据获取的唯一ID保存文件
                 return(1);
             }
             catch
             {
                 return(-1);
             }
         }
         else
         {
             db.Passages.Find(returnPassageInfo.Id).LastReadTime = System.DateTime.Now;
             try
             {
                 db.SaveChanges();
                 return(1);
             }
             catch
             {
                 return(-1);
             }
             finally
             {
                 db.Database.CloseConnection();
             }
         }
     }
 }