/// <summary> /// 【只有这个是异步的】 /// </summary> /// <returns></returns> public static Task <ExReaderPlus.Manage.PassageManager.Passage> GetPassage(UserDictionary.Passage passageInfo) { ExReaderPlus.PassageIO.PassageIO passageIO = new ExReaderPlus.PassageIO.PassageIO(); var passage = passageIO.ReadPassage(passageInfo); return(passage); }
/// <summary> /// 传入参数:文章信息 /// 把一篇文章从书架删除,并且删除缓存文件 /// 成功返回 1 /// 失败返回 0 /// 异常返回 -1 /// </summary> /// <returns></returns> public static int DeletePassageInfoAndPassage(UserDictionary.Passage passageInfo) { using (var db = new DataContext()) { db.Passages.Remove( db.Passages.FirstOrDefault(p => p.Id.Equals(passageInfo.Id)) ); ExReaderPlus.PassageIO.PassageIO passageIO = new ExReaderPlus.PassageIO.PassageIO(); try { db.SaveChanges(); passageIO.DeletePassage(passageInfo);//删除缓存文件 return(1); } catch { return(-1); } finally { db.Database.CloseConnection(); } } }
/// <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(); } } } }