public IActionResult Edit(int id) { DBModel db = new DBModel(); NovelModel novel = db.SelectOneNovel(id.ToString()); return(View(novel)); }
public void MostFamous() { DBModel db = new DBModel(); NovelModel max_voting = db.GetMaxVoting(); Assert.IsTrue(!max_voting.Id.Equals(null)); }
public void GetNovelById() { string id = "1"; DBModel db = new DBModel(); NovelModel novel = db.SelectOneNovel(id); Assert.AreEqual(novel.Id, id); }
public ActionResult Index(string id, string chapter) { ViewBag.BookID = id; ViewBag.Chapter = chapter; DBModel db = new DBModel(); NovelModel nv = db.SelectOneNovel(id); return(View(nv)); }
public IActionResult Upload() { if (Request.Cookies["userID"] != null) { NovelModel nv = new NovelModel(); nv.Owner = Request.Cookies["userID"]; return(View(nv)); } else { return(Redirect("/Home/Index/")); } }
public IActionResult Edit(NovelModel novel) { DBModel db = new DBModel(); bool editCheck = db.EditNovel(Int32.Parse(novel.Id), novel); if (editCheck) { return(Redirect("/Novel/Detail/?id=" + novel.Id)); } else { return(View()); } }
public void AddingNovel() { NovelModel nv = new NovelModel(); nv.Name = "new novel"; nv.Image_link = "#"; nv.Author = "Tony"; nv.Chap_number = 1; DBModel db = new DBModel(); bool novel = db.AddNewNovel(nv); Assert.IsTrue(novel); //check that add new novel is success or not }
public void EditNovelInfor() { DBModel db = new DBModel(); //get novel by id NovelModel nv = db.SelectOneNovel("1"); //new infor, cannot change id NovelModel newNv = new NovelModel(); newNv.Name = "Hello"; newNv.Author = "Fire"; bool novel = db.EditNovel(nv, newNv); Assert.IsTrue(novel); //check that add new novel is success or not }
private List <ChapterDto> Get_ChapterList(NovelModel novelModel) { Document document; Download_PageContent(novelModel, 0, out document); if (document == null) { return(null); } var domainPattern = @"^(?<domain>http://\w+.*?)/"; var domainUrl = Regex.Match(novelModel.MenuUrl, domainPattern).Groups["domain"].Value; var linkArray = document.GetAllElements().Where(x => x.TagName() == "a").ToList(); var pattern = @"(?<novelId>.*/)(?<chapterId>.*html$)"; var chapterDtoList = new List <ChapterDto>(); var chapterSortId = novelModel.MaxChapterIndex; foreach (var element in linkArray) { var href = element.Attr("href"); if (!element.HasText || !Regex.IsMatch(href, pattern)) { continue; } var chapterUrl = $"{domainUrl}{href}"; var text = element.Text(); if (novelModel.Chapters.Any(x => x.Url.Equals(chapterUrl, StringComparison.CurrentCultureIgnoreCase))) { continue; } chapterSortId++; chapterDtoList.Add(new ChapterDto { Title = text, Url = chapterUrl, SortId = chapterSortId }); } return(chapterDtoList); }
public IActionResult Upload(NovelModel novel) { if (novel.Name != null && novel.Author != null && novel.Link != null) { novel.upload_date = DateTime.Now; novel.Owner = Request.Cookies["userID"].ToString(); string image_sourceFile = @"C:\Users\lythe\Desktop\" + novel.Image_link; string image_destinationFile = @"~/database/Image/" + novel.Image_link; string sourceFile = @"C:\Users\lythe\Desktop\" + novel.Link; string destinationFile = "~/database/novel_book/" + novel.Link; System.IO.File.Copy(image_sourceFile, image_destinationFile, true); System.IO.File.Copy(sourceFile, destinationFile, true); DBModel db = new DBModel(); int chap = 1; //get maximum chapter using (StreamReader sr = new StreamReader("~/database/novel_book/" + novel.Link)) { string line = sr.ReadLine(); //first is a chapter while (line != null) { if (line.ToLower() == ("chapter " + chap)) { chap += 1; } line = sr.ReadLine(); } } novel.Chap_number = chap - 1; db.AddNewNovel(novel); return(Redirect("/Home/Index/")); } else { return(Redirect("/Novel/Upload/")); } }
public IActionResult Index(string id, string chapter) { DBModel db = new DBModel(); NovelModel nv = db.SelectOneNovel(id); //increasing view nv.Viewer += 1; bool viewChecking = db.EditNovel(Int32.Parse(id), nv); ViewBag.BookID = id; if (chapter == null) { chapter = "1"; } ViewBag.Chapter = chapter; ViewBag.NextChapter = Int32.Parse(chapter) + 1; ViewBag.Previous = (Int32.Parse(chapter) > 1) ? Int32.Parse(chapter) - 1 : Int32.Parse(chapter); int chap = 1; //get maximum chapter using (StreamReader sr = new StreamReader("./database/novel_book/" + nv.Link)) { string line = sr.ReadLine(); //first is a chapter while (line != null) { if (line.ToLower() == ("chapter " + chap)) { chap += 1; } line = sr.ReadLine(); } } if (ViewBag.NextChapter > chap - 1) { ViewBag.NextChapter = chap - 1; } return(View(nv)); }
private void Download_PageContent(NovelModel novelModel, int retryCount, out Document document) { try { var connect = NSoupClient.Connect(novelModel.MenuUrl); document = connect.Get(); } catch (Exception ex) { if (retryCount > 5) { document = null; return; } Thread.Sleep(3 * 1000); Download_PageContent(novelModel, ++retryCount, out document); InvokeScriptFunction(() => { Document.InvokeScript("show_message", new[] { ex.Message, "danger" }); }); } }
// Use this for initialization void Start() { MyNovelModel = GetComponent<NovelModel>(); }
public void Parse_Menu_Url(string url) { var domainUrl = "http://www.biquge.com.tw"; Document document = null; try { var connect = NSoupClient.Connect(url); document = connect.Get(); } catch (Exception ex) { InvokeScriptFunction(() => { Document.InvokeScript("show_message", new[] { ex.Message, "danger" }); }); return; } var linkArray = document?.GetAllElements().Where(x => x.TagName() == "a").ToList(); var novelName = document?.GetElementById("info").Children.First.Text(); CurrentBrowser.Parent.Text = novelName; using (var uow = new NovelUnitOfWork()) { uow.BeginTransaction(); var service = new NovelDomainService(uow); var novelModel = service.GetNovelModelByUrl(url); var isUpdate = novelModel != null; if (novelModel == null) { novelModel = new NovelModel { Chapters = new List <ChapterModel>() }; } novelModel.MenuUrl = url; novelModel.NovelName = novelName; int chapterCount = 0; var pattern = @"/\d+_\d+/\d+.html"; foreach (Element element in linkArray) { var href = element.Attr("href"); if (!element.HasText || !Regex.IsMatch(href, pattern)) { continue; } chapterCount++; var chapterUrl = $"{domainUrl}{href}"; var text = element.Text(); if (novelModel.Chapters.Any(x => x.Url.Equals(chapterUrl, StringComparison.CurrentCultureIgnoreCase))) { continue; } novelModel.Chapters.Add(new ChapterModel { Title = text, Url = chapterUrl, SortId = chapterCount, LastUpdatedTime = DateTime.Now }); } novelModel.MaxChapterIndex = chapterCount; AppManagement.Cache.Set(url, novelModel); if (!novelModel.Chapters.Any()) { InvokeScriptFunction(() => { Document.InvokeScript("show_message", new[] { "没有解析出任何内容", "danger" }); }); } var argsStr = JsonConvert.SerializeObject(novelModel.Chapters.Where(x => x.Id <= 0) .OrderBy(x => x.SortId).Select(x => new { x.Url, x.Title }).ToList()); InvokeScriptFunction("loadMenu", argsStr); if (isUpdate) { return; } service.Add(novelModel); } }