Exemple #1
0
        public async Task RateBarAsync(int userId, int userRating, int barId)
        {
            if (await dbContext.BarRating.AnyAsync(p => (p.UserId == userId && p.BarId == barId)))
            {
                var givenRating = await dbContext.BarRating.FirstOrDefaultAsync(p => (p.UserId == userId && p.BarId == barId));

                givenRating.Rating = userRating;
                await dbContext.SaveChangesAsync();

                await barService.UpdateAverageRatingAsync(barId);
            }
            else
            {
                var user = await FindUserByIdAsync(userId);

                var bar = await barService.FindBarByIdAsync(barId);

                var barRating = new BarRating()
                {
                    User     = user,
                    Bar      = bar,
                    Rating   = userRating,
                    BarName  = bar.Name,
                    UserName = user.UserName
                };
                await dbContext.BarRating.AddAsync(barRating);

                await dbContext.SaveChangesAsync();

                await barService.UpdateAverageRatingAsync(barId);
            }
        }