public async Task <IActionResult> AddRating(int beerId, [FromBody] AddBeerRatingDto ratingDto) { if (!await _service.IfBeerExistAsync(beerId)) { return(NotFound()); } var userLogged = int.Parse(HttpContext.User.Identity.Name); var userRating = await _service.GetBeerRaitingForUserAsync(userLogged, beerId); if (userRating == null) { var result = await _service.AddBeerRatingAsync(userLogged, beerId, ratingDto); var beer = await _beerService.GetBeerAsync(beerId); var updatedBeer = new SaveBeerDto(); updatedBeer.Name = beer.Name; updatedBeer.AvatarUrl = beer.AvatarUrl; updatedBeer.BeerTypeId = beer.BeerType.Id; updatedBeer.BreweryId = beer.Brewery.Id; updatedBeer.Description = beer.Description; updatedBeer.Percentage = beer.Percentage; if (beer.AverageRating == 0) { updatedBeer.AverageRating = (beer.AverageRating + ratingDto.Average); } else { updatedBeer.AverageRating = (beer.AverageRating + ratingDto.Average) / 2; } var updateResult = await _beerService.UpdateBeer(beerId, updatedBeer); if (!updateResult) { return(BadRequest("Niepowodzenie :(")); } return(Ok(result)); } return(BadRequest("Juz dodałeś ocenę")); }