示例#1
0
        public ReleaseDetail GetRelease(ReleaseCriteria criteria)
        {
            using (var uow = UnitOfWorkFactory.Create <NovelContext>())
            {
                var service = new ReleaseService(uow);
                var detail  = service.Get(criteria);

                detail.Series = service.View <Series>().Where(w => w.ID == detail.SeriesID).SingleOrDefault() ?? new Series();

                detail.Group = service.View <Group>().Where(w => w.ID == detail.GroupID).SingleOrDefault() ?? new Group();

                detail.Summarize = service.View <Summarize>().Where(w => w.SourceTable == R.SourceTable.RELEASE && w.SourceID == detail.ID).SingleOrDefault() ?? new Summarize();

                // get data for user lists

                detail.Connectors = service.View <Connector>().Where(w => w.IsDeleted == false && w.SourceID == detail.SeriesID).ToList();

                detail.UserLists = service.View <UserList>().Where(w => w.IsDeleted == false && w.UserID == criteria.ByUserID)
                                   .OrderBy(o => o.Priority == 0 ? int.MaxValue : o.Priority).ThenBy(o => o.Name).ToList();

                detail.UserAction = new UserActionFacade().Get(new ViewForm {
                    UserID = criteria.ByUserID, SourceID = detail.ID, SourceTable = R.SourceTable.RELEASE
                });

                detail.Sticky = service.View <Sticky>().Where(w => w.SourceID == detail.ID && w.SourceTable == R.SourceTable.RELEASE).SingleOrDefault() ?? new Sticky();

                return(detail);
            }
        }
示例#2
0
        public ActionResult Detail(ReleaseCriteria criteria)
        {
            criteria.ByUserID = UserSession.UserID;
            var detail = Facade <SeriesFacade>().GetRelease(criteria);
            // log views
            var viewForm = new ViewForm {
                UserID = criteria.ByUserID, SourceID = detail.ID, SourceTable = R.SourceTable.RELEASE
            };

            Facade <UserActionFacade>().Viewing(viewForm);
            return(View(detail));
        }
示例#3
0
        public IList <Release> SearchRelease(ReleaseCriteria criteria)
        {
            using (var uow = UnitOfWorkFactory.Create <NovelContext>())
            {
                var qRelease = uow.Repository <Release>().All();

                if (!string.IsNullOrWhiteSpace(criteria.Query))
                {
                    qRelease = qRelease.Where(w => w.Title.Contains(criteria.Query));
                }

                return(qRelease.ToList());
            }
        }
示例#4
0
        // GET: Release
        public ActionResult Index(ReleaseCriteria criteria)
        {
            var searchModel = CreateSearchModel(criteria);
            var pagedList   = Facade <SearchFacade>().Search(searchModel);

            // alternative version
            if (!string.IsNullOrWhiteSpace(criteria.Alt))
            {
                var feedItems = pagedList.Data.Select(s => new FeedGrid()
                {
                    InsertedDate = s.InsertedDate,
                    UpdatedDate  = s.UpdatedDate,
                    Title        = s.Title,
                    Url          = Url.Action("Detail", "Release", new { ID = s.ID, Seo = s.PrettyTitle.ToSeo() }),
                });
                return(FeedGenerator(feedItems, criteria.Alt));
            }

            return(View(pagedList));
        }
示例#5
0
        public JsonResult Release(ReleaseCriteria criteria)
        {
            var results = Facade <QueryFacade>().SearchRelease(criteria);

            return(Json(results, JsonRequestBehavior.AllowGet));
        }