Exemplo n.º 1
0
        public MvcContrib.Pagination.IPagination <CrawlerSessionViewModel> GetPagedList(int page, int size)
        {
            CrawlerSession  crawlerSessionAlias = null;
            CrawlerSettings settingsAlias       = null;
            var             query = Session.QueryOver <CrawlerSession>(() => crawlerSessionAlias).
                                    JoinAlias(() => crawlerSessionAlias.Settings, () => settingsAlias, JoinType.LeftOuterJoin).OrderBy(x => x.DateTime).Asc;

            var count      = query.ToRowCountQuery();
            var totalCount = count.FutureValue <int>();

            var firstResult = (page - 1) * size;

            CrawlerSessionViewModel viewModel = null;



            var viewModels =
                query.SelectList(list => list
                                 .Select(x => x.Id).WithAlias(() => viewModel.Id)
                                 .Select(x => x.Title).WithAlias(() => viewModel.Title)
                                 .Select(x => x.DateTime).WithAlias(() => viewModel.DateTime)
                                 .Select(x => x.StartUrl).WithAlias(() => viewModel.StartUrl))
                .TransformUsing(Transformers.AliasToBean(typeof(CrawlerSessionViewModel)))
                .Skip(firstResult)
                .Take(size)
                .Future <CrawlerSessionViewModel>();

            return(new CustomPagination <CrawlerSessionViewModel>(viewModels, page, size, totalCount.Value));
        }
        public void Handle(ChangeCrawlerSessionCommand command)
        {
            CrawlerSession crawlerSession;

            if (command.Id != 0)
            {
                crawlerSession = this._crawlerSessionRepository.Get(command.Id) ?? new CrawlerSession();
            }
            else
            {
                crawlerSession = new CrawlerSession();
            }

            crawlerSession.ChangeSession(
                command.Title,
                command.StartUrl,
                command.SearchDepth);

            this._crawlerSessionRepository.SaveOrUpdate(crawlerSession);
        }
Exemplo n.º 3
0
        public CrawlerSessionViewModel GetCrawlerSessionDetails(int id)
        {
            CrawlerSession          crawlerSessionAlias = null;
            CrawlerSessionViewModel viewModelAlias;
            var viewModel = Session.QueryOver <CrawlerSession>(() => crawlerSessionAlias).Where(x => x.Id == id)

                            .Select(Projections.ProjectionList()
                                    .Add(Projections.Property <CrawlerSession>(cs => cs.Title))
                                    .Add(Projections.Property <CrawlerSession>(cs => cs.StartUrl))
                                    .Add(Projections.Property <CrawlerSession>(cs => cs.DateTime)))
                            .List <object[]>()


                            .Select(values => new CrawlerSessionViewModel()
            {
                Title    = (string)values[0],
                StartUrl = (string)values[1],
                DateTime = values[2] != null ? ((DateTime)values[2]).ToShortTimeString() : "-"
            });

            return(viewModel.FirstOrDefault());
        }