Example #1
0
        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());
        }
Example #2
0
        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());
        }