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()); }
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); }