public async Task <Result <GetFavoriteProductModel> > SaveFavoriteProductAsync(Guid customerId, SendFavoriteProductModel model) { if (await ProductRepository.FindAsync(model.ProductId) == null) { return(Result <GetFavoriteProductModel> .BadRequest($"Product with Id {model.ProductId} does not exist.")); } if (await FavoriteProductRepository.GetFirstOrDefaultAsync(predicate: fp => fp.ProductId == model.ProductId && fp.CustomerId == customerId) != null) { return(Result <GetFavoriteProductModel> .BadRequest($"Product with Id {model.ProductId} is already a favorite product of customer with Id {customerId}.")); } var favorite = Mapper.Map <FavoriteProduct>(model); favorite.CustomerId = customerId; await FavoriteProductRepository.InsertAsync(favorite); await UnitOfWork.SaveChangesAsync(); return(Result <GetFavoriteProductModel> .Success(Mapper.Map <GetFavoriteProductModel>(favorite))); }
public async Task <ActionResult <GetFavoriteProductModel> > PostFavoriteProduct(Guid id, [FromBody] SendFavoriteProductModel model) { return(GetResult(await FavoriteProductService.SaveFavoriteProductAsync(id, model))); }