public async Task <bool> ReportOpinion(int opinionId, Rental rental, int userId) { if (rental == null) { throw new EntityNotFoundException("Wypożyczalnia"); } var rentalOpinion = rental.RentalOpinions.FirstOrDefault(o => o.Id == opinionId); if (rentalOpinion == null) { throw new EntityNotFoundException("Opinia"); } if (rentalOpinion.RentalOpinionReports.Any(o => o.ReporterId == userId)) { throw new DuplicationException("Możesz daną opinię zgłosić tylko raz"); } var opinionReport = new OpinionReport(userId, rentalOpinionId: rental.Id); rentalOpinion.IncrementReports(); rentalOpinion.RentalOpinionReports.Add(opinionReport); return(await database.Complete()); }
public async Task <bool> ReportOpinion(int opinionId, School school, int userId) { if (school == null) { throw new EntityNotFoundException("Szkółka"); } var opinion = school.Opinions.FirstOrDefault(o => o.Id == opinionId); if (opinion == null) { throw new EntityNotFoundException("Opinia"); } if (opinion.SchoolOpinionReports.Any(o => o.ReporterId == userId)) { throw new DuplicationException("Możesz daną opinię zgłosić tylko raz"); } var opinionReport = new OpinionReport(userId, schoolOpinionId: school.Id); opinion.IncrementReports(); opinion.SchoolOpinionReports.Add(opinionReport); return(await database.Complete()); }