public async Task <IActionResult> UpdateRating(int ratingId, [FromBody] AddBeerRatingDto ratingDto) { if (!await _service.IfExistRating(ratingId)) { return(NotFound()); } var beerId = await _service.UpdateRatingAsync(ratingId, ratingDto); GetBeerRatingDto beerRating = await _service.GetBeerRatingAsync(beerId); 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 = beerRating.Average; } else { updatedBeer.AverageRating = beerRating.Average; } var updateResult = await _beerService.UpdateBeer(beerId, updatedBeer); if (!updateResult) { return(BadRequest("Niepowodzenie :(")); } return(Ok()); }
public async Task <GetBeerRatingDto> GetBeerRatingAsync(int beerId) { var rating = await _repository .GetAllIncluding(a => a.User) .Where(c => c.BeerId == beerId) .ToListAsync(); GetBeerRatingDto beerRating = new GetBeerRatingDto(); beerRating.Appearance = 0; beerRating.Average = 0; beerRating.Flavor = 0; beerRating.Smell = 0; beerRating.NumberOfRaitings = rating.Count; beerRating.Id = 0; if (rating.Count == 0) { return(beerRating); } foreach (var r in rating) { beerRating.Appearance += r.Appearance; beerRating.Average += r.Average; beerRating.Flavor += r.Flavor; beerRating.Smell += r.Smell; } beerRating.Appearance = beerRating.Appearance / rating.Count; beerRating.Average = beerRating.Average / rating.Count; beerRating.Flavor = beerRating.Flavor / rating.Count; beerRating.Smell = beerRating.Smell / rating.Count; return(beerRating); }
public async Task <GetBeerRatingDto> GetBeerRaitingForUserAsync(int userLogged, int beerId) { var rating = await _repository .GetAllIncluding(a => a.User) .Where(c => c.BeerId == beerId) .Where(d => d.UserId == userLogged) .SingleOrDefaultAsync(); if (rating == null) { return(null); } GetBeerRatingDto beerRatingDto = new GetBeerRatingDto(); beerRatingDto.Appearance = rating.Appearance; beerRatingDto.Average = rating.Average; beerRatingDto.Flavor = rating.Flavor; beerRatingDto.Smell = rating.Smell; beerRatingDto.NumberOfRaitings = 1; beerRatingDto.Id = rating.Id; return(beerRatingDto); }