Example #1
0
        public DynamicContentPublication[] GetPublicationsByIds(string[] ids)
        {
            var cacheKey = GetCacheKey("IDynamicContentService.GetPublicationsByIds", string.Join(", ", ids));
            var retVal   = _cacheManager.Get(cacheKey, RegionName, () => _contentService.GetPublicationsByIds(ids));

            return(retVal);
        }
        public IHttpActionResult GetDynamicContentPublicationById(string id)
        {
            var retVal = _dynamicContentService.GetPublicationsByIds(new[] { id }).FirstOrDefault();

            if (retVal != null)
            {
                return(Ok(retVal.ToWebModel(_marketingExtensionManager.DynamicContentExpressionTree)));
            }
            return(NotFound());
        }
Example #3
0
        public GenericSearchResult <coreModel.DynamicContentPublication> SearchContentPublications(DynamicContentPublicationSearchCriteria criteria)
        {
            var retVal = new GenericSearchResult <coreModel.DynamicContentPublication>();

            using (var repository = _repositoryFactory())
            {
                var query = repository.PublishingGroups;
                if (!string.IsNullOrEmpty(criteria.Store))
                {
                    query = query.Where(x => x.StoreId == criteria.Store);
                }
                if (criteria.OnlyActive)
                {
                    query = query.Where(x => x.IsActive == true);
                }
                if (!string.IsNullOrEmpty(criteria.Keyword))
                {
                    query = query.Where(q => q.Name.Contains(criteria.Keyword));
                }
                var sortInfos = criteria.SortInfos;
                if (sortInfos.IsNullOrEmpty())
                {
                    sortInfos = new[] { new SortInfo {
                                            SortColumn = ReflectionUtility.GetPropertyName <coreModel.DynamicContentPublication>(x => x.Name), SortDirection = SortDirection.Ascending
                                        } };
                }
                query = query.OrderBySortInfos(sortInfos).ThenBy(x => x.Id);

                retVal.TotalCount = query.Count();

                var ids = query.Select(x => x.Id)
                          .Skip(criteria.Skip)
                          .Take(criteria.Take)
                          .ToArray();

                retVal.Results = _dynamicContentService.GetPublicationsByIds(ids)
                                 .OrderBy(x => Array.IndexOf(ids, x.Id))
                                 .ToList();
            }
            return(retVal);
        }