public GenericSearchResult <coreModel.DynamicContentPlace> SearchContentPlaces(DynamicContentPlaceSearchCriteria criteria) { var retVal = new GenericSearchResult <coreModel.DynamicContentPlace>(); using (var repository = _repositoryFactory()) { var query = repository.Places; if (!string.IsNullOrEmpty(criteria.FolderId)) { query = query.Where(x => x.FolderId == criteria.FolderId); } 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.DynamicContentPlace>(x => x.Name), SortDirection = SortDirection.Ascending } }; } query = query.OrderBySortInfos(sortInfos); retVal.TotalCount = query.Count(); var ids = query.Select(x => x.Id) .Skip(criteria.Skip) .Take(criteria.Take).ToArray(); retVal.Results = _dynamicContentService.GetPlacesByIds(ids); } return(retVal); }
public DynamicContentPlace[] GetPlacesByIds(string[] ids) { var cacheKey = GetCacheKey("IDynamicContentService.GetPlacesByIds", string.Join(", ", ids)); var retVal = _cacheManager.Get(cacheKey, RegionName, () => _contentService.GetPlacesByIds(ids)); return(retVal); }
public IHttpActionResult GetDynamicContentPlaceById(string id) { var retVal = _dynamicContentService.GetPlacesByIds(new[] { id }).FirstOrDefault(); if (retVal != null) { return(Ok(retVal.ToWebModel())); } return(NotFound()); }