public async Task <PagedCollection <FavouritesModel> > ListFavourites(string userName, int pageNumber, int itemsPerPage) { var rootItems = await _favouritesRepository.GetUserFavouritesAsync(userName); var items = _mapper.Map <IEnumerable <Favourites>, IEnumerable <FavouritesModel> >(rootItems); var paginatedItems = PagedCollection <FavouritesModel> .Create(items, pageNumber, itemsPerPage); return(paginatedItems); }
public async Task <IndexedResult <IEnumerable <MealPreviewVM> > > GetFavouriteMealsAsync( Guid userId, IndexedResult <MealPreviewVM> lastReturned, int takeAmount = Constants.DEFAULT_DB_TAKE_VALUE ) { var usersFavourites = await _favouriteRepository.GetUserFavouritesAsync(userId, lastReturned?.Index ?? 0, takeAmount); return(new IndexedResult <IEnumerable <MealPreviewVM> >() { Result = _mapper.Map <IEnumerable <MealPreviewVM> >(usersFavourites), Index = lastReturned?.Index ?? 0 + usersFavourites.Count, IsLast = usersFavourites.Count != takeAmount }); }
public async Task <IndexedResult <IEnumerable <MealPreviewVM> > > SearchMealsAsync( Guid userId, IndexedResult <MealSearchVM> searchArgumentsVM, int takeAmount = Constants.DEFAULT_DB_TAKE_VALUE) { var searchTask = _mealRepository.GetMealPreviewsByQueryAsync( searchArgumentsVM.Result.Query, searchArgumentsVM.Index, takeAmount ); var favouritesTask = _favouritesRepository.GetUserFavouritesAsync( userId, 0, int.MaxValue, searchArgumentsVM.Result.Query); await Task.WhenAll(searchTask, favouritesTask); if (!searchTask.Result.Any()) { return(new IndexedResult <IEnumerable <MealPreviewVM> > { Result = Enumerable.Empty <MealPreviewVM>(), Index = 0, IsLast = true }); } var searchResultVM = _mapper.Map <IEnumerable <MealPreviewVM> >(searchTask.Result); SetIsFavouriteField(userId, favouritesTask.Result, searchResultVM); return(new IndexedResult <IEnumerable <MealPreviewVM> > { Result = searchResultVM, Index = searchArgumentsVM.Index + searchTask.Result.Count, IsLast = searchTask.Result.Count != takeAmount }); }
public async Task <IndexedResult <IEnumerable <MealPreviewVM> > > GetUsersMealsPreviewsAsync( Guid userId, IndexedResult <MealPreviewVM> lastReturned, int takeAmount = Constants.DEFAULT_DB_TAKE_VALUE ) { var userMealPreviews = await _mealRepository.GetMealPreviewsAsync(userId, lastReturned?.Index ?? 0, takeAmount); var userFavourites = await _favouritesRepository.GetUserFavouritesAsync( userId, 0, int.MaxValue); var mealPreviewsVM = _mapper.Map <IEnumerable <MealPreviewVM> >(userMealPreviews); SetIsFavourite(userFavourites, mealPreviewsVM); return(new IndexedResult <IEnumerable <MealPreviewVM> >() { Result = mealPreviewsVM, Index = (lastReturned?.Index ?? 0) + userMealPreviews.Count, IsLast = userMealPreviews.Count != takeAmount }); }