public async Task <IActionResult> AddRentalOpinion(int rentalId, RentalOpinionForCreateDto rentalOpinionForCreateDto) { var rental = await database.RentalRepository.Get <Rental>(rentalId); var currentUserId = int.Parse(HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value); if (rentalService.UserRentalOpinionExist(currentUserId, rental)) { return(BadRequest("Nie można dodać kilku opinii")); } if (rental.OwnerId == currentUserId) { return(BadRequest("Nie można dodać opinii do swojej szkółki")); } var rentalOpinion = mapper.Map <RentalOpinion>(rentalOpinionForCreateDto); if (await rentalService.AddRentalOpinion(currentUserId, rental, rentalOpinion)) { var rentalOpinionToReturn = mapper.Map <RentalOpinionDetailsDto>(rentalOpinion); await notificationSystem.PushNotification(rental.OwnerId, StaticExpressions.RentalOpinionCreatedForOwner(rentalOpinion.User.UserName)); return(Ok(rentalOpinionToReturn)); } return(BadRequest("Nie udało się dodać opinii dla wypożyczalni")); }