Exemple #1
0
        public object Post(string id, ListQueryModel model) {
            if (string.IsNullOrEmpty(id)) {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
            var part = GetProjectionPartRecord(model.ViewId);
            if (part == null) {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
            var pluralService = PluralizationService.CreateService(new CultureInfo("en-US"));
            id = pluralService.Singularize(id);
            string filterDescription = null;
            
            return GetFilteredRecords(id, part, out filterDescription, model, p => {
                _gridService.GenerateSortCriteria(id, model.Sidx, model.Sord, p.Record.QueryPartRecord.Id);
                var totalRecords = _projectionManager.GetCount(p.Record.QueryPartRecord.Id);
                var pageSize = model.Rows;
                var totalPages = (int) Math.Ceiling((float) totalRecords/(float) pageSize);
                var pager = new Pager(Services.WorkContext.CurrentSite, model.Page, pageSize);
                var records = GetLayoutComponents(p, pager.GetStartIndex(), pager.PageSize);

                return new {
                    totalPages = totalPages,
                    page = model.Page,
                    totalRecords = totalRecords,
                    rows = records,
                    filterDescription = filterDescription
                };
            });
        }
Exemple #2
0
        public VideoPickerViewModel FindVideo(VideoPickerViewModel model, PagerParameters pagerParameters)
        {
            var find = model.Find ?? "";
            var mediaItemQuery = _orchardServices.ContentManager
                                                 .HqlQuery()
                                                 .ForPart<MediaItemPart>()
                                                 .ForVersion(VersionOptions.Published)
                                                 .List()
                                                 .Where(m => find == ""
                                                             || m.Title.ToLowerInvariant().Contains(find)
                                                             || m.Filename.ToLowerInvariant().Contains(find)
                                                             || m.MimeType.ToLowerInvariant().Contains(find))
                                                 .OrderBy(m => m.Title);

            var count = mediaItemQuery.Count();
            // when is selected the option 'Show All' in pagination,the page size parameter is equal to 0
            if (pagerParameters.PageSize == 0)
            {
                // assign at page size parameter value the total number of records found
                pagerParameters.PageSize = count;
            }
            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);
            dynamic shape = _shapeFactory;

            model = new VideoPickerViewModel
            {
                Find = find,
                Pager = shape.Pager(pager).TotalItemCount(count),
                SearchResult = mediaItemQuery.Select(x => new MediaItemViewModel
                {
                    Title = x.Title,
                    Description = x.Description,
                    Filename = x.Filename,
                    Published = x.Published,
                    Type = x.Type,
                    Url = x.Url,
                    MimeType = x.MimeType,
                    Id = x.Id,
                    Size = x.Size,
                    DefaultThumbnailUrl = x.DefaultThumbnailUrl,
                    HasEncodedMedia = _encodedMediaRepository.Table.Any(encoded => encoded.MediaItem.Id == x.Id && encoded.EncodingPreset.MediaType == MediaType.Video),
                    Modified = x.ModifiedUtc,
                    Created = x.CreatedUtc,
                    Owner = x.Owner
                }).Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize == 0 ? count : pager.PageSize).ToList()
            };

            return model;
        }
        public List<PatrocinadorRecord> List(PagerParameters pagerParameters, bool? status, string pesquisaLivre)
        {
            // The pager is used to apply paging on the query and to create a PagerShape
            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters.Page, pagerParameters.PageSize);

            IQueryable<PatrocinadorRecord> records = _repository.Table;

            if (!string.IsNullOrEmpty(pesquisaLivre))
            {
                records = records.Where(p => p.Nome.Contains(pesquisaLivre) || p.ContactoNome.Contains(pesquisaLivre) || p.ContactoTelefone.Contains(pesquisaLivre) || p.ContactoEmail.Contains(pesquisaLivre));
            }

            // Apply paging
            records = records.Skip(pager.GetStartIndex()).Take(pager.PageSize);

            // Construct a Pager shape
            var pagerShape = _shapeFactory.Pager(pager).TotalItemCount(records.Count());

            return records.ToList();
        }
Exemple #4
0
        public ArticleItemListViewModel GetAllItems(ArticleItemListViewModel model, int issueId, PagerParameters pagerParameters)
        {
            var find = model.Find ?? "";

            var articleItemQuery = _orchardServices.ContentManager
                                                             .Query()
                                                             .ForVersion(VersionOptions.Latest)
                                                             .Join<CommonPartRecord>()
                                                             .Where(x => x.Container != null && x.Container.Id == issueId)
                                                             .ForPart<ArticlePart>().List()
                                                             .Where(x => x.Title.ToLowerInvariant().Contains(find));

            var count = articleItemQuery.Count();

            // when is selected the option 'Show All' in pagination,the page size parameter is equal to 0
            if (pagerParameters.PageSize == 0)
            {
                // assign at page size parameter value the total number of records found
                pagerParameters.PageSize = count;
            }
            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);
            dynamic shape = _shapeFactory;

            model = new ArticleItemListViewModel
            {
                IssueId = issueId,
                Pager = shape.Pager(pager).TotalItemCount(count),
                ArticleItems = articleItemQuery.Select(x => new ArticleItemViewModel
                {
                    Title = x.As<TitlePart>().Title,
                    Content = x.As<BodyPart>().Text,
                    Published = x.IsPublished(),
                    CreatedUtc = x.As<CommonPart>().CreatedUtc,
                    ModifiedUtc = x.As<CommonPart>().ModifiedUtc,
                    Author = x.Author,
                    Id = x.Id
                }).Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize == 0 ? count : pager.PageSize)
            };

            return model;
        }
Exemple #5
0
        public PublicationItemListViewModel GetAllItems(PublicationItemListViewModel model, PagerParameters pagerParameters)
        {
            var find = model.Find ?? "";
            var publicationItemQuery = _orchardServices.ContentManager.HqlQuery().ForPart<PublicationPart>()
                                                                      .ForType(Constants.Publication)
                                                                      .ForVersion(VersionOptions.Latest)
                                                                      .List()
                                                                      .Where(m => find == ""
                                                                                  || m.Title.ToLowerInvariant().Contains(find));

            var count = publicationItemQuery.Count();
            // when is selected the option 'Show All' in pagination,the page size parameter is equal to 0
            if (pagerParameters.PageSize == 0)
            {
                // assign at page size parameter value the total number of records found
                pagerParameters.PageSize = count;
            }
            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);
            dynamic shape = _shapeFactory;

            model = new PublicationItemListViewModel
            {
                Find = find,
                Pager = shape.Pager(pager).TotalItemCount(count),
                PublicationItems = publicationItemQuery.Select(x => new PublicationItemViewModel
                {
                    Title = x.Title,
                    Content = x.Text,
                    Published = x.IsPublished(),
                    CreatedUtc = x.CreatedUtc,
                    ModifiedUtc = x.ModifiedUtc,
                    Id = x.Id
                }).Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize == 0 ? count:pager.PageSize).ToList()
            };

            return model;
        }
        public IEnumerable<ContentItem> GetFilteredNotificationBatches(string keywords, DateTime? fromDate, DateTime? toDate, NotificationBatchSortBy sortBy)
        {
            var pager = new Pager(_siteService.GetSiteSettings(), new PagerParameters());
            var searchSettingsPart = _orchardServices.WorkContext.CurrentSite.As<SearchSettingsPart>();

            IEnumerable<ISearchHit> searchHits = new PageOfItems<ISearchHit>(new ISearchHit[] { });

            searchHits = _searchService.Query(keywords, pager.Page, pager.PageSize,
                                              _orchardServices.WorkContext.CurrentSite.As<SearchSettingsPart>().Record.FilterCulture,
                                              searchSettingsPart.SearchIndex,
                                              searchSettingsPart.SearchedFields,
                                              searchHit => searchHit);

            var notificationBatchItems = _contentManager
                .Query(VersionOptions.Latest, Constants.NotificationBatchContentType)
                .ForContentItems(searchHits.Select(hit => hit.ContentItemId));

            if (fromDate != null && toDate != null)
            {
                notificationBatchItems = notificationBatchItems
                    .Where<CommonPartRecord>(record => record.CreatedUtc >= fromDate.Value && record.CreatedUtc <= toDate.Value);
            }

            switch (sortBy)
            {
                case NotificationBatchSortBy.DateSent: notificationBatchItems = notificationBatchItems
                    .OrderByDescending<CommonPartRecord>(record => record.PublishedUtc);
                    break;
                case NotificationBatchSortBy.Title: notificationBatchItems = notificationBatchItems
                    .OrderBy<TitlePartRecord>(record => record.Title);
                    break;
                default:
                    throw new ArgumentOutOfRangeException("sortBy");
            }

            return notificationBatchItems.List();
        }
Exemple #7
0
        public EncodedListViewModel GetEncodedList(int id, PagerParameters pagerParameters)
        {
            var mediaItemPart = _orchardServices.ContentManager.Get<MediaItemPart>(id, VersionOptions.Latest);
            if (mediaItemPart == null) {
                throw new Exception("Inexistent content");
            }
            var mediaItemQuery = _encodedMediaRepository.Table.Where(e => e.MediaItem.Id == id).OrderByDescending(e => e.EncodingPreset.Target).ThenByDescending(e => e.EncodingPreset.Id);

            var count = mediaItemQuery.Count();
            if (pagerParameters.PageSize == 0)
            {
                pagerParameters.PageSize = count;
            }
            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);
            dynamic shape = _shapeFactory;

            var model = new EncodedListViewModel {
                MediaItemId = mediaItemPart.Id,
                Title = mediaItemPart.Title,
                Filename = mediaItemPart.Filename,
                Pager = shape.Pager(pager).TotalItemCount(count),
                EncodedMediaList = mediaItemQuery.Select(x => new EncodedMediaViewModel {
                    Id = x.Id,
                    Url = x.Url,
                    EncodingPreset = (x.EncodingPreset != null) ? x.EncodingPreset.ShortDescription : String.Empty,
                    Status = x.Status,
                    Metadata = x.Metadata,
                    JobErrorMessage = x.JobErrorMessage,
                    CreatedUtc = x.CreatedUtc,
                    ModifiedUtc = x.ModifiedUtc,
                    Owner = x.Owner,
                    PresetWidth = x.Width,
                    MediaTarget = (x.EncodingPreset != null) ? x.EncodingPreset.Target : MediaTarget.Unknown,
                }).Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize == 0 ? count : pager.PageSize).ToList()
            };

            return model;
        }
Exemple #8
0
        public MediaItemListViewModel GetAllItems(MediaItemListViewModel model, PagerParameters pagerParameters)
        {
            var find = model.Find ?? "";
            var mediaItemQuery = _orchardServices.ContentManager
                       .Query<MediaItemPart, MediaItemRecord>()
                       .ForVersion(VersionOptions.Latest)
                       .List()
                       .Where(m => find == "" || m.Title.ToLowerInvariant().Contains(find));

            var count = mediaItemQuery.Count();
            // when is selected the option 'Show All' in pagination,the page size parameter is equal to 0
            if (pagerParameters.PageSize == 0)
            {
                // assign at page size parameter value the total number of records found
                pagerParameters.PageSize = count;
            }
            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);
            dynamic shape = _shapeFactory;

            model = new MediaItemListViewModel {
                Pager = shape.Pager(pager).TotalItemCount(count),
                MediaItems = mediaItemQuery.Select(x => new MediaItemViewModel {
                    Title = x.Title,
                    Description = x.Description,
                    Filename = x.Filename,
                    Published = x.Published,
                    Type = x.Type,
                    Url = x.Url,
                    MimeType = x.MimeType,
                    Id = x.Id,
                    Size = x.Size,
                    DefaultThumbnailUrl = x.DefaultThumbnailUrl,
                    Modified = x.ModifiedUtc,
                    Created = x.CreatedUtc,
                    Owner = x.Owner
                }).Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize == 0 ? count : pager.PageSize).ToList()
            };

            return model;
        }