public GenericSearchResult <FulfillmentCenter> SearchCenters(FulfillmentCenterSearchCriteria criteria) { var result = new GenericSearchResult <FulfillmentCenter>(); using (var repository = _repositoryFactory()) { repository.DisableChangesTracking(); var query = repository.FulfillmentCenters; if (!string.IsNullOrEmpty(criteria.SearchPhrase)) { query = query.Where(x => x.Name.Contains(criteria.SearchPhrase)); } var sortInfos = criteria.SortInfos; if (sortInfos.IsNullOrEmpty()) { sortInfos = new[] { new SortInfo { SortColumn = "Name" } }; } query = query.OrderBySortInfos(sortInfos).ThenBy(x => x.Id); result.TotalCount = query.Count(); result.Results = query.Skip(criteria.Skip) .Take(criteria.Take) .ToArray() .Select(x => x.ToModel(AbstractTypeFactory <FulfillmentCenter> .TryCreateInstance())) .ToList(); } return(result); }
public virtual async Task <FulfillmentCenterSearchResult> SearchCentersAsync(FulfillmentCenterSearchCriteria criteria) { var cacheKey = CacheKey.With(GetType(), "SearchCentersAsync", criteria.GetCacheKey()); return(await _platformMemoryCache.GetOrCreateExclusiveAsync(cacheKey, async (cacheEntry) => { cacheEntry.AddExpirationToken(FulfillmentCenterCacheRegion.CreateChangeToken()); var result = AbstractTypeFactory <FulfillmentCenterSearchResult> .TryCreateInstance(); using (var repository = _repositoryFactory()) { repository.DisableChangesTracking(); var sortInfos = GetSortInfos(criteria); var query = GetFulfillmentCenterQuery(repository, criteria, sortInfos); result.TotalCount = await query.CountAsync(); var fulfillmentCenterEntities = new FulfillmentCenterEntity[0]; if (criteria.Take > 0) { fulfillmentCenterEntities = await query.Skip(criteria.Skip).Take(criteria.Take).ToArrayAsync(); } result.Results = fulfillmentCenterEntities .Select(x => x.ToModel(AbstractTypeFactory <FulfillmentCenter> .TryCreateInstance())) .ToList(); } return result; })); }
public async Task <ActionResult> SearchFulfillmentCenters([FromBody] FulfillmentCenterSearchCriteria criteria) { if (criteria != null) { var result = await _inventoryService.SearchFulfillmentCentersAsync(criteria); return(Json(new { TotalCount = result.TotalItemCount, Results = result.ToArray() })); } return(Ok()); }
protected virtual IList <SortInfo> GetSortInfos(FulfillmentCenterSearchCriteria criteria) { var sortInfos = criteria.SortInfos; if (sortInfos.IsNullOrEmpty()) { sortInfos = new[] { new SortInfo { SortColumn = "Name" } }; } return(sortInfos); }
public async Task <IPagedList <FulfillmentCenter> > SearchFulfillmentCentersAsync(FulfillmentCenterSearchCriteria criteria) { var criteriaDto = new inventoryDto.FulfillmentCenterSearchCriteria { SearchPhrase = criteria.SearchPhrase, Skip = (criteria.PageNumber - 1) * criteria.PageSize, Take = criteria.PageSize, Sort = criteria.Sort }; var searchResult = await _inventoryApi.SearchFulfillmentCentersAsync(criteriaDto); var centers = searchResult.Results.Select(x => x.ToFulfillmentCenter()); return(new StaticPagedList <FulfillmentCenter>(centers, criteria.PageNumber, criteria.PageSize, searchResult.TotalCount.Value)); }
public IPagedList <FulfillmentCenter> SearchFulfillmentCenters(FulfillmentCenterSearchCriteria criteria) { return(Task.Factory.StartNew(() => SearchFulfillmentCentersAsync(criteria), CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }
protected virtual IQueryable <FulfillmentCenterEntity> GetFulfillmentCenterQuery(IInventoryRepository repository, FulfillmentCenterSearchCriteria criteria, IEnumerable <SortInfo> sortInfos) { var query = repository.FulfillmentCenters; if (!string.IsNullOrEmpty(criteria.Keyword)) { query = query.Where(x => x.Name.Contains(criteria.Keyword)); } return(query.OrderBySortInfos(sortInfos)); }
public async Task <IPagedList <FulfillmentCenter> > SearchFulfillmentCentersAsync(FulfillmentCenterSearchCriteria criteria) { var cacheKey = CacheKey.With(GetType(), "SearchFulfillmentCenters", criteria.GetCacheKey()); return(await _memoryCache.GetOrCreateExclusiveAsync(cacheKey, async (cacheEntry) => { cacheEntry.AddExpirationToken(InventoryCacheRegion.CreateChangeToken()); cacheEntry.AddExpirationToken(_apiChangesWatcher.CreateChangeToken()); var criteriaDto = new inventoryDto.FulfillmentCenterSearchCriteria { SearchPhrase = criteria.SearchPhrase, Skip = (criteria.PageNumber - 1) * criteria.PageSize, Take = criteria.PageSize, Sort = criteria.Sort }; var searchResult = await _inventoryApi.SearchFulfillmentCentersAsync(criteriaDto); var centers = searchResult.Results.Select(x => x.ToFulfillmentCenter()); return new StaticPagedList <FulfillmentCenter>(centers, criteria.PageNumber, criteria.PageSize, searchResult.TotalCount.Value); })); }
public IPagedList <FulfillmentCenter> SearchFulfillmentCenters(FulfillmentCenterSearchCriteria criteria) { return(SearchFulfillmentCentersAsync(criteria).GetAwaiter().GetResult()); }
public async Task <IActionResult> SearchFulfillmentCenters([FromBody] FulfillmentCenterSearchCriteria searchCriteria) { var retVal = await _fulfillmentCenterSearchService.SearchCentersAsync(searchCriteria); return(Ok(retVal)); }
public IHttpActionResult SearchFulfillmentCenters([FromBody] FulfillmentCenterSearchCriteria searchCriteria) { var retVal = _commerceSearchService.SearchFulfillmentCenters(searchCriteria); return(Ok(retVal)); }
// Mock. TODO: write implementation public virtual GenericSearchResult <domainModel.FulfillmentCenter> SearchFulfillmentCenters(FulfillmentCenterSearchCriteria criteria) { using (var repository = _repositoryFactory()) { repository.DisableChangesTracking(); var query = repository.FulfillmentCenters; // TODO var sortInfos = criteria.SortInfos; if (sortInfos.IsNullOrEmpty()) { sortInfos = new[] { new SortInfo { SortColumn = ReflectionUtility.GetPropertyName <dataModel.FulfillmentCenter>(x => x.Name), SortDirection = SortDirection.Descending } }; } query = query.OrderBySortInfos(sortInfos); var result = new GenericSearchResult <domainModel.FulfillmentCenter> { TotalCount = query.Count() }; var fulfillmentIds = query.Select(x => x.Id).Skip(criteria.Skip).Take(criteria.Take).ToArray(); result.Results = GetFulfillmentCentersById(fulfillmentIds); return(result); } }
public async Task <GenericSearchResult <FulfillmentCenter> > SearchCentersAsync(FulfillmentCenterSearchCriteria criteria) { var cacheKey = CacheKey.With(GetType(), "SearchCentersAsync", criteria.GetCacheKey()); return(await _platformMemoryCache.GetOrCreateExclusiveAsync(cacheKey, async (cacheEntry) => { cacheEntry.AddExpirationToken(FulfillmentCenterCacheRegion.CreateChangeToken()); var result = new GenericSearchResult <FulfillmentCenter>(); using (var repository = _repositoryFactory()) { repository.DisableChangesTracking(); var query = repository.FulfillmentCenters; if (!string.IsNullOrEmpty(criteria.Keyword)) { query = query.Where(x => x.Name.Contains(criteria.Keyword)); } var sortInfos = criteria.SortInfos; if (sortInfos.IsNullOrEmpty()) { sortInfos = new[] { new SortInfo { SortColumn = "Name" } }; } query = query.OrderBySortInfos(sortInfos); result.TotalCount = await query.CountAsync(); var arrayFullfillmentCenters = await query.Skip(criteria.Skip).Take(criteria.Take).ToArrayAsync(); result.Results = arrayFullfillmentCenters .Select(x => x.ToModel(AbstractTypeFactory <FulfillmentCenter> .TryCreateInstance())) .ToList(); } return result; })); }