public async Task <IActionResult> ApproveLesson([Required] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!_lessonService.IsLessonExists(id)) { return(NotFound()); } if (_lessonService.GetById(id).LessonStatusId == (int)LessonStatuses.Approved) { ModelState.AddModelError("LessonStatus", "Rezerwacja została już zatwierdzona."); return(BadRequest(ModelState)); } if (_lessonService.GetById(id).CoachLesson.LessonStatusId == (int)LessonStatuses.Approved) { ModelState.AddModelError("LessonStatus", "Zajęcia mają już zatwierdzoną rezerwację."); return(BadRequest(ModelState)); } try { await _lessonService.ApproveLessonAsync(id); } catch (Exception ex) { _logger.Error(ex, "Error during LessonStatus change"); return(StatusCode((int)HttpStatusCode.InternalServerError)); } return(StatusCode((int)HttpStatusCode.OK)); }