예제 #1
0
        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());
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }