public async Task <BaseApiResponse> RateInstructorAsync(RateInstructorRequest request) { var response = new BaseApiResponse { IsError = false }; try { var instructorToRate = await _context.Instructors.SingleOrDefaultAsync(i => i.Id == request.InstructorId); instructorToRate.NumberOfRatings++; instructorToRate.AggregateRatings += request.Rating; instructorToRate.AverageRating = CalculateInstructorRatingAsync(instructorToRate.AggregateRatings, instructorToRate.NumberOfRatings); await _context.SaveChangesAsync(); } catch (Exception e) { response.IsError = true; response.ErrorMessage = e.Message; } return(response); }
public async Task <IActionResult> RateInstructor([FromBody] RateInstructorRequest request) { var response = await _instructorsService.RateInstructorAsync(request); return(Ok(response)); }