private async Task <BaseViewModel <PagingResult <StoreViewModel> > > GetAll(GetStoreWithGPSRequestViewmovel request, string defaultCondition = null) { var pageSize = request.PageSize; var pageIndex = request.PageIndex; var result = new BaseViewModel <PagingResult <StoreViewModel> >(); string filter = SearchHelper <Store> .GenerateStringExpression(request.Filter, defaultCondition); Expression <Func <Store, bool> > FilterExpression = await LinqHelper <Store> .StringToExpression(filter); var includeList = IncludeLinqHelper <Store> .StringToListInclude(request?.Include); QueryArgs <Store> queryArgs = new QueryArgs <Store> { Offset = pageSize * (pageIndex - 1), Limit = pageSize, Filter = FilterExpression, Sort = request.SortBy, Include = includeList }; var data = _repository.Get(queryArgs.Filter, queryArgs.Sort, queryArgs.Offset, queryArgs.Limit, queryArgs.Include).ToList(); //var sql = data.ToSql(); if (data == null || data.Count == 0) { result.Description = MessageHandler.CustomMessage(MessageConstants.NO_RECORD); result.Code = MessageConstants.NO_RECORD; } else { var pageSizeReturn = pageSize; if (data.Count < pageSize) { pageSizeReturn = data.Count; } result.Data = new PagingResult <StoreViewModel> { Results = _mapper.Map <IEnumerable <StoreViewModel> >(data), PageIndex = pageIndex, PageSize = pageSizeReturn, TotalRecords = _repository.Count(queryArgs.Filter) }; foreach (var item in result.Data.Results) { var listPromo = _promotionRepository.GetMany(_ => _.BrandId == item.BrandId && _.IsActive == true); item.Promotions = _mapper.Map <ICollection <PromotionViewModel> >(listPromo); } } if (request.Longitude != null && request.Latitude != null) { foreach (var item in result?.Data?.Results) { var sCoord = new GeoCoordinate(item.Latitude, item.Longitude); var eCoord = new GeoCoordinate(request.Latitude.Value, request.Longitude.Value); item.Distance = (sCoord.GetDistanceTo(eCoord) / 1000.0); } } return(result); }
public async Task <BaseViewModel <PagingResult <StoreViewModel> > > GetAllStoresNoPaging(GetStoreWithGPSRequestViewmovel request) { return(await GetAll(new GetStoreWithGPSRequestViewmovel { PageIndex = null, PageSize = null, Filter = request.Filter, Include = request.Include, SortBy = request.SortBy, Latitude = request.Latitude, Longitude = request.Longitude }, Constants.DEAFAULT_DELETE_STATUS_EXPRESSION)); }
public async Task <BaseViewModel <PagingResult <StoreViewModel> > > GetAllStores(GetStoreWithGPSRequestViewmovel request) { return(await GetAll(request, Constants.DEAFAULT_DELETE_STATUS_EXPRESSION)); }
public async Task <BaseViewModel <PagingResult <StoreViewModel> > > GetTopStore(GetStoreWithGPSRequestViewmovel request) { var pageSize = request.PageSize; var pageIndex = request.PageIndex; var result = new BaseViewModel <PagingResult <StoreViewModel> >(); var data = await _repository.GetTopStore(pageSize *(pageIndex - 1), pageSize); //var sql = data.ToSql(); if (data == null || data.Count == 0) { result.Description = MessageHandler.CustomMessage(MessageConstants.NO_RECORD); result.Code = MessageConstants.NO_RECORD; } else { var pageSizeReturn = pageSize; if (data.Count < pageSize) { pageSizeReturn = data.Count; } result.Data = new PagingResult <StoreViewModel> { Results = _mapper.Map <IEnumerable <StoreViewModel> >(data), PageIndex = pageIndex, PageSize = pageSizeReturn, }; foreach (var item in result.Data.Results) { var listPromo = _promotionRepository.GetMany(_ => _.BrandId == item.BrandId && _.IsActive == true); item.Promotions = _mapper.Map <ICollection <PromotionViewModel> >(listPromo); } } foreach (var item in result?.Data?.Results) { var sCoord = new GeoCoordinate(item.Latitude, item.Longitude); var eCoord = new GeoCoordinate(request.Latitude.Value, request.Longitude.Value); item.Distance = (sCoord.GetDistanceTo(eCoord) / 1000.0); } return(result); }
public async Task <BaseViewModel <PagingResult <StoreViewModel> > > GetStoreByCategoryID(Guid cateId, GetStoreWithGPSRequestViewmovel request) { var cate = _StoreCategoryRepository.GetById(cateId); var listStore = _repository.GetMany(_ => _.IsDelete == false && _.Cate_Id == cateId); return(await GetAll(request, $"{Constants.DEAFAULT_DELETE_STATUS_EXPRESSION} && _.CateId == new System.Guid(\"{cateId}\")")); }
public async Task <ActionResult <BaseViewModel <PagingResult <StoreViewModel> > > > GetTopStore([FromQuery] GetStoreWithGPSRequestViewmovel request) { request.SetDefaultPage(); //var a = request.Filters[0]; var result = await _storeService.GetTopStore(request); this.HttpContext.Response.StatusCode = (int)result.StatusCode; return(result); }