public async Task <IActionResult> AddToFavourites([FromBody] FavouriteCreationVM favouriteCreation) { if (favouriteCreation.MealId == null || favouriteCreation.MealId == Guid.Empty) { return(NotFound()); } var userId = new Guid(User.Identity.Name); favouriteCreation.UserId = userId; var favouriteId = await _favouritesService.AddToFavouritesAsync(favouriteCreation); return(Ok(favouriteId)); }
public async Task <Guid> AddToFavouritesAsync(FavouriteCreationVM favouriteCreation) { var dbFavourite = _mapper.Map <Favourite>(favouriteCreation); if (!await _favouriteRepository.AddAsync(dbFavourite)) { throw new DataAccessException($"Adding to favourites failed for model: {dbFavourite}"); } var checkForNumberOfFavouriteMarksTask = _achievementService.CheckForNumberOfFavouriteMarksAsync(dbFavourite.MealId); var LogNewFavouriteAddedTask = _activityService.LogNewFavouriteMealAddedAsync(dbFavourite.UserId, dbFavourite.MealId); await Task.WhenAll(checkForNumberOfFavouriteMarksTask, LogNewFavouriteAddedTask); return(dbFavourite.Id); }