public ActionResult Index(NovelCriteria criteria) { var searchModel = CreateSearchModel(criteria); var pagedList = Facade <SearchFacade>().Search(searchModel); return(View(pagedList)); }
public NovelDetail Get(NovelCriteria criteria) { var qNovel = Table <Novel>().All(); if (criteria.IDToInt > 0) { qNovel = qNovel.Where(w => w.ID == criteria.IDToInt); } if (!string.IsNullOrWhiteSpace(criteria.Title)) { qNovel = qNovel.Where(w => w.Title == criteria.Title); } var novel = qNovel.FirstOrDefault(); if (novel == null) { return(null); } var novelDetail = new NovelDetail(); MapProperty(novel, novelDetail); return(novelDetail); }
public NovelDetail GetNovel(NovelCriteria criteria) { using (var uow = UnitOfWorkFactory.Create <NovelContext>()) { var service = new NovelService(uow); var detail = service.Get(criteria); // author var qTag = service.View <Tag>().All(); var qConnector = service.View <Connector>().All(); var qAuthor = service.View <Author>().All(); var authors = qConnector.Where(w => w.ConnectorType == R.ConnectorType.NOVEL_AUTHOR) .Where(w => w.SourceID == detail.ID).Select(s => s.TargetID).ToList(); detail.Authors = qAuthor.Where(w => authors.Contains(w.ID)).ToList(); // chapter var qChapter = service.View <Chapter>().All(); qChapter = qChapter.Where(w => w.NovelID == detail.ID); detail.Chapters = qChapter.ToList(); // glossary detail.Glossaries = service.View <Glossary>().Where(w => w.SourceTable == R.SourceTable.NOVEL && w.SourceID == detail.ID).ToList(); // summarize detail.Summarize = service.View <Summarize>().Where(w => w.SourceTable == R.SourceTable.NOVEL && w.SourceID == detail.ID).SingleOrDefault() ?? new Summarize(); return(detail); } }
public ActionResult Detail(NovelCriteria criteria) { var detail = Facade <NovelFacade>().GetNovel(criteria); // log views var viewForm = new ViewForm { UserID = UserSession.UserID, SourceID = detail.ID, SourceTable = R.SourceTable.NOVEL }; Facade <UserActionFacade>().Viewing(viewForm); return(View(detail)); }
public IList <Novel> SearchNovel(NovelCriteria criteria) { using (var uow = UnitOfWorkFactory.Create <NovelContext>()) { var qNovel = uow.Repository <Novel>().All(); if (!string.IsNullOrWhiteSpace(criteria.Query)) { qNovel = qNovel.Where(w => w.Title.Contains(criteria.Query)); } return(qNovel.ToList()); } }
public ActionResult PreviousChapter(NovelCriteria criteria, int?chapterID) { if (chapterID.HasValue) { var detail = Facade <NovelFacade>().GetNovel(criteria); var release = detail.Chapters.OrderByDescending(o => o.Volume).ThenByDescending(o => o.Number).FirstOrDefault(w => w.ID < chapterID); if (release == null) { return(View(detail)); } return(RedirectPermanent(Url.Action("Detail", "Chapter", new { ID = release.ID, Seo = release.Title.ToSeo() }))); } return(null); }