Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }