public PartialViewResult DirectoryChapter(Guid id) { var list = new List <Models.ViewModels.Books2.Item>(); var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); if (target == null) { return(null); } if (!target.IsBookChapter) { return(null); } list.Add(new Models.ViewModels.Books2.Item(target)); while (target.ParentDocumentId != null) { target = target.ParentDocument; list.Add(new Models.ViewModels.Books2.Item(target)); if (target.IsBookBook) { break; } } list.Reverse(); return(PartialView(list)); }
/// <summary> /// 删除。 /// </summary> /// <param name="id">文档ID。</param> /// <returns>父文档页面(如果有父文档)或一览(如果无父文档)。</returns> /// <remarks>直接删除。不提示。</remarks> public ActionResult Delete(Guid id) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); if (target == null) { return(HttpNotFound()); } var parentDocumentId = target.ParentDocumentId; target.ParentDocumentId = null; db.SaveChanges(); db.Documents.Remove(target); db.SaveChanges(); if (parentDocumentId != null) { return(RedirectToAction("Details", new { id = parentDocumentId })); } else { return(RedirectToAction("Index")); } }
/// <summary> /// 综合入口。 /// </summary> /// <param name="id">节点ID。为空表示根。</param> /// <returns>跳转到对应类别的界面。</returns> /// <remarks>自动识别节点ID对应节点的类型——书架、书籍或章节——并进行跳转。</remarks> public ActionResult Index(Guid?id) { if (id == null) { return(RedirectToAction("IndexBookshelf", new { id })); } var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); if (target == null) { return(HttpNotFound()); } if (target.IsBookBookShelf) { return(RedirectToAction("IndexBookshelf", new { id })); } else if (target.IsBookBook) { return(RedirectToAction("IndexBook", new { id })); } else if (target.IsBookChapter) { return(RedirectToAction("IndexChapter", new { id })); } else { return(null); } }
//public JsonResult OpenLocalFile(Guid id) //{ // var folder = "D:\\DocumentLibraries"; // var fullFileName = folder + "\\" + id.ToString() + ".pdf"; // if (System.IO.File.Exists(fullFileName)) // { // //System.Diagnostics.Process.Start(fullFileName); // var process = new System.Diagnostics.Process(); // process.StartInfo.FileName = fullFileName; // process.Start(); // return Json(new { result = true }); // } // else // { // return Json(new { result = false }); // } //} public JsonResult GetChapters(Guid documentId) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(documentId); if (string.IsNullOrEmpty(target.Url)) { return(Json(false)); } var targetB = new Models.BusinessModels.PageContentSolver.MicrosoftDocsChapters(target.Url, documentId); bool result; result = targetB.GetPage(); if (!result) { return(Json(false)); } result = targetB.ParsePage(); if (!result) { return(Json(false)); } target.Chapters.AddRange(targetB.GetChapters()); target.IsGetAllChapters = true; db.SaveChanges(); return(Json(true)); }
public Details(Guid documentId) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(documentId); this.Initial(target); }
/// <summary> /// 面包屑。 /// </summary> /// <param name="id">当前文档ID。</param> /// <returns></returns> public PartialViewResult BreadField(Guid id, bool activeCurrentNode) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); var targetV = new Models.ViewModels.Documents.BreadField.BreadField(target, activeCurrentNode); return(PartialView(targetV)); }
/// <summary> /// 明细。 /// </summary> /// <param name="id">文档ID。</param> public ActionResult Details(Guid id) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); var targetV = new Models.ViewModels.Documents.Details.Details(target); return(View(targetV)); }
/// <summary> /// 删除章节。 /// </summary> /// <param name="chapterId">章节ID。</param> /// <returns></returns> public ActionResult DeleteChapter(Guid chapterId) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Chapters.Find(chapterId); db.Chapters.Remove(target); db.SaveChanges(); return(RedirectToAction("Details", new { id = target.DocumentId })); }
private void Create(Guid id) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); this.Root = target; this.NodeName = target.NodeName; this.Path = target.Path; this.List = new List <Item>(); this.Fill(target, 0); }
/// <summary> /// 设置文档标记。 /// </summary> /// <param name="id">文档ID。</param> /// <param name="property">属性名称。</param> /// <param name="value">值。</param> /// <returns>是否成功执行。</returns> public JsonResult SetDocumentFlag(Guid id, string property, bool value) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); if (target == null) { return(Json(new { result = false })); } switch (property) { case "IsChecked": target.IsChecked = value; break; case "IsNoted": target.IsNoted = value; break; case "IsGetAllChildren": target.IsGetAllChildren = value; break; case "IsGetAllChapters": target.IsGetAllChapters = value; break; case "IsBookmarked": target.IsBookmarked = value; break; case "IsBook": target.IsBook = value; break; case "IsAbstract": target.IsAbstract = value; break; case "IsMain": target.IsMain = value; break; default: return(Json(new { result = false })); } db.SaveChanges(); return(GetDocument(id)); }
/// <summary> /// 初始化。 /// </summary> /// <remarks>无需参数,获取所有根文档。</remarks> public Index() { var db = new Models.Domains.Entities.DMsDbContext(); var query = db.Documents.AsQueryable(); query = query.Where(c => c.ParentDocumentId == null); var queryOrdered = query.OrderBy(c => c.Priority).ThenBy(c => c.DocumentId); var list = queryOrdered.ToList(); this.List = list.Select(c => new Item(c)).ToList(); }
public IndexBookmark() { var db = new Models.Domains.Entities.DMsDbContext(); var query = db.Documents.AsQueryable(); query = query.Where(c => c.IsBookmarked); var queryOrdered = query.OrderByDescending(c => c.UpdateTime).ThenBy(c => c.DocumentId); var list = queryOrdered.ToList(); this.List = list.Select(c => new Item(c)).ToList(); }
/// <summary> /// 编辑。 /// </summary> /// <param name="id">文档ID。</param> public ActionResult Edit(Guid id) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); if (target == null) { return(HttpNotFound()); } var targetV = new Models.ViewModels.Documents.Edit.Edit(target); return(View(targetV)); }
public CreateChapter(Guid documentId) { var db = new Models.Domains.Entities.DMsDbContext(); var document = db.Documents.Find(documentId); this.DocumentId = documentId; if (document.Chapters.Count() == 0) { this.Priority = 1; } else { this.Priority = document.Chapters.Max(c => c.Priority) + 1; } }
/// <summary> /// 获取文档信息。 /// </summary> /// <param name="id">文档ID。</param> /// <returns>文档信息。</returns> public JsonResult GetDocument(Guid id) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); if (target == null) { return(Json(new { result = false })); } var targetV = new Models.ViewModels.Services.GetDocument.GetDocument(target); return(Json(targetV)); }
public JsonResult GetChapters(Guid parentId) { var db = new Models.Domains.Entities.DMsDbContext(); var query = db.Documents.AsQueryable(); query = query.Where(c => c.ParentDocumentId == parentId); var queryOrdered = query.OrderBy(c => c.Priority).ThenBy(c => c.DocumentId); var @enum = queryOrdered.AsEnumerable().Where(c => c.IsBookChapter); var list = @enum.ToList().Select(c => new Models.ViewModels.Books2.Item(c)).ToList(); return(Json(list)); }
public ActionResult CreateChapter([Bind] Models.ViewModels.Documents.CreateChapter.CreateChapter targetV) { if (ModelState.IsValid) { var db = new Models.Domains.Entities.DMsDbContext(); var target = targetV.GetReturn(); db.Chapters.Add(target); db.SaveChanges(); return(RedirectToAction("Details", new { id = targetV.DocumentId })); } return(View(targetV)); }
public ActionResult CreateByUrlMicrosoftDocs([Bind()] Models.ViewModels.Documents.CreateByUrlMicrosoftDocs.CreateByUrlMicrosoftDocs targetV) { if (ModelState.IsValid) { //var targetB = new Models.BusinessModels.PageContentSolver.MicrosoftDocs(targetV.Url, targetV.NodeName); var targetB = new Models.BusinessModels.PageContentSolver.MicrosoftDocs(targetV); bool result; result = targetB.GetPage(); if (!result) { return(HttpNotFound()); } result = targetB.ParsePage(); if (!result) { return(HttpNotFound()); } var target = targetB.GetReturn(); var db = new Models.Domains.Entities.DMsDbContext(); target.DocumentId = Guid.NewGuid(); target.ParentDocumentId = targetV.ParentDocumentId; { target.Priority = db.Documents.Where(c => c.ParentDocumentId == targetV.ParentDocumentId).Max(c => c.Priority) + 1; if (target.Priority == null) { target.Priority = 1; } } target.UpdateTime = DateTime.Now; db.Documents.Add(target); db.SaveChanges(); db.Chapters.AddRange(target.Chapters); db.SaveChanges(); return(RedirectToAction("Details", new { id = target.DocumentId })); } return(View(targetV)); }
public ValidateResult Save() { var target = new Models.Domains.Entities.Document { DocumentId = Guid.NewGuid(), ParentDocumentId = this.ParentDocumentId, Title = this.Title, NodeName = this.Title, Priority = this.Priority, UpdateTimeForHTTPGet = DateTime.Now, IsChecked = this.IsChecked, Url = this.Url, Remarks = this.Remarks, IsBook = true, ISBN = this.ISBN, IsAbstract = this.IsBookshelf || this.IsChapterMain, IsMain = this.IsBookRoot || this.IsChapterMain, UpdateTime = DateTime.Now }; var db = new Models.Domains.Entities.DMsDbContext(); lock (Atom.GetInstance()) { if (string.IsNullOrWhiteSpace(this.Title)) { return(new ValidateResult(false, "Title", "Empty")); } if (this.Priority < 0) { return(new ValidateResult(false, "Priority", "Less Than 0")); } db.Documents.Add(target); db.SaveChanges(); } this.DocumentId = target.DocumentId; return(new ValidateResult(true, null)); }
public ValidateResult Save() { var db = new Models.Domains.Entities.DMsDbContext(); lock (Atom.GetInstance()) { var target = db.Documents.Find(this.DocumentId); if (target == null) { return(new ValidateResult(false, null)); } if (string.IsNullOrWhiteSpace(this.Title)) { return(new ValidateResult(false, "Title", "Empty")); } if (this.Priority < 0) { return(new ValidateResult(false, "Priority", "Less Than 0")); } if (System.BitConverter.ToInt64(this.TimeStamp, 0) != System.BitConverter.ToInt64(target.TimeStamp, 0)) { return(new ValidateResult(false, "TimeStamp", "Changed")); } target.Title = this.Title; target.NodeName = this.Title; target.Priority = this.Priority; target.IsChecked = this.IsChecked; target.Url = this.Url; target.Remarks = this.Remarks; target.ISBN = this.ISBN; target.IsAbstract = this.IsBookshelf || this.IsChapterMain; target.IsMain = this.IsBookRoot || this.IsChapterMain; target.UpdateTime = DateTime.Now; db.SaveChanges(); } return(new ValidateResult(true, null)); }
public PartialViewResult ListBook(Guid id) { var db = new Models.Domains.Entities.DMsDbContext(); var query = db.Documents.AsQueryable(); query = query.Where(c => c.ParentDocumentId == id); var queryOrdered = query.OrderBy(c => c.Priority).ThenBy(c => c.DocumentId); var @enum = queryOrdered.AsEnumerable().Where(c => c.IsBookBook); var list = @enum.ToList().Select(c => new Models.ViewModels.Books2.Item(c)).ToList(); ViewBag.Id = id; return(PartialView(list)); }
public ActionResult Edit([Bind()] Models.ViewModels.Documents.Edit.Edit targetV) { if (ModelState.IsValid) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(targetV.DocumentId); targetV.GetReturn(target); target.UpdateTime = DateTime.Now; db.SaveChanges(); return(RedirectToAction("Details", new { id = target.DocumentId })); } return(View(targetV)); }
public PartialViewResult SingleChapter(Guid id) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); if (target == null) { return(null); } if (!target.IsBookChapter) { return(null); } var targetV = new Models.ViewModels.Books2.Item(target); return(PartialView(targetV)); }
public JsonResult GetBookshelf(Guid bookshelfId) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(bookshelfId); if (target == null) { return(null); } if (!target.IsBookBookShelf) { return(null); } var targetV = new Models.ViewModels.Books2.Item(target); return(Json(targetV)); }
public JsonResult GetChapter(Guid chapterId) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(chapterId); if (target == null) { return(null); } if (!target.IsBookChapter) { return(null); } var targetV = new Models.ViewModels.Books2.Item(target); return(Json(targetV)); }
public ActionResult Create([Bind()] Models.ViewModels.Documents.Create.Create targetV) { if (string.IsNullOrEmpty(targetV.NodeName)) { targetV.NodeName = targetV.Title; } if (ModelState.IsValid) { var target = targetV.GetReturn(); var db = new Models.Domains.Entities.DMsDbContext(); db.Documents.Add(target); db.SaveChanges(); return(RedirectToAction("Details", new { id = target.DocumentId })); } return(View(targetV)); }
public PartialViewResult SingleBookshelf(Guid?id) { var db = new Models.Domains.Entities.DMsDbContext(); var target = db.Documents.Find(id); if (target == null) { var targetVvirtual = new Models.ViewModels.Books2.Item(); targetVvirtual.Title = "[根]"; return(PartialView(targetVvirtual)); } if (!target.IsBookBookShelf) { return(null); } var targetV = new Models.ViewModels.Books2.Item(target); return(PartialView(targetV)); }
public List <Models.Domains.Entities.Chapter> GetReturnList() { var db = new Models.Domains.Entities.DMsDbContext(); var document = db.Documents.Find(this.DocumentId); int maxPriority; if (document.Chapters.Count() == 0) { maxPriority = 0; } else { maxPriority = document.Chapters.Max(c => c.Priority); } var listInput = new List <string>(this.Input.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries)); var listChapter = new List <Models.Domains.Entities.Chapter>(); foreach (var itemInput in listInput) { if (string.IsNullOrEmpty(itemInput)) { continue; } var itemChapter = new Models.Domains.Entities.Chapter(); itemChapter.ChapterId = Guid.NewGuid(); itemChapter.DocumentId = this.DocumentId; itemChapter.ChapterName = itemInput.Trim(); itemChapter.Priority = ++maxPriority; itemChapter.UpdateTime = DateTime.Now; listChapter.Add(itemChapter); } return(listChapter); }
public ActionResult CreateByUrlMicrosoftDocsApi(Models.ViewModels.Documents.CreateByUrlMicrosoftDocsApi.CreateByUrlMicrosoftDocsApi targetV) { var targetB = new Models.BusinessModels.PageContentSolver.MicrosoftDocsApi(targetV.Url, targetV.NodeNameParsingMode); bool result; result = targetB.GetPage(); if (!result) { return(HttpNotFound()); } result = targetB.ParsePage(); if (!result) { return(HttpNotFound()); } var target = targetB.GetReturn(); var db = new Models.Domains.Entities.DMsDbContext(); target.ParentDocumentId = targetV.ParentDocumentId; if (string.IsNullOrEmpty(targetV.NodeNameParsingMode)) { target.NodeName = targetV.NodeName; } { target.Priority = db.Documents.Where(c => c.ParentDocumentId == targetV.ParentDocumentId).Max(c => c.Priority) + 1; if (target.Priority == null) { target.Priority = 1; } } db.Documents.Add(target); db.SaveChanges(); return(RedirectToAction("Details", new { id = target.DocumentId })); }
public ValidateResult Save() { var db = new Models.Domains.Entities.DMsDbContext(); lock (Atom.GetInstance()) { var target = db.Documents.Find(this.DocumentId); if (target == null) { return(new ValidateResult(false, null)); } if (System.BitConverter.ToInt64(this.TimeStamp, 0) != System.BitConverter.ToInt64(target.TimeStamp, 0)) { return(new ValidateResult(false, "TimeStamp", "Changed")); } db.Documents.Remove(target); db.SaveChanges(); } return(new ValidateResult(true, null)); }