public IActionResult Attendance([FromBody] EventAttendanceViewModel model) { if (!ModelState.IsValid) { return(BadRequest()); } var request = new EventAttendanceRequest { ClubId = club.Guid, EventId = model.EventId, PlayerId = model.PlayerId, SquadId = model.SquadId, Attendance = model.Attendance }; var response = eventService.UpdateEventAttendance(request); if (!response.RequestIsFulfilled) { foreach (var error in response.Errors) { ModelState.AddModelError("", error); } return(BadRequest()); } return(Ok()); }
public Response UpdateEventAttendance(EventAttendanceRequest request) { var validationResult = eventAttendanceRequestValidator.Validate(request); if (!validationResult.IsValid) { return(Response.CreateResponse(validationResult.Messages)); } var club = clubQuery.GetClub(request.ClubId); if (club == null) { return(Response.CreateResponse(new EntityNotFoundException("The specified club does not exist"))); } var squad = squadQuery.GetSquad(request.SquadId); if (squad == null || squad.ClubId != club.Guid) { return(Response.CreateResponse(new IllegalOperationException("The specified squad does not belong to this club"))); } var @event = eventQuery.GetEvent(request.EventId); if (@event == null || [email protected](s => s.Guid == squad.Guid)) { return(Response.CreateResponse(new IllegalOperationException("The specified squad is not bound to this event"))); } var player = memberQuery.GetPlayer(request.PlayerId); if (player == null || player.SquadId != squad.Guid) { return(Response.CreateResponse(new IllegalOperationException("The specified player does not belong this squad"))); } try { eventRepository.UpdateAttendance(request.SquadId, request.EventId, request.PlayerId, request.Attendance); } catch (Exception ex) { return(Response.CreateResponse(ex)); } return(Response.CreateSuccessResponse()); }