Esempio n. 1
0
        public IActionResult Feedback([FromBody] EventFeedbackViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var request = new EventFeedbackRequest {
                ClubId   = club.Guid,
                EventId  = model.EventId,
                PlayerId = model.PlayerId,
                SquadId  = model.SquadId,
                Feedback = model.Feedback
            };

            var response = eventService.UpdateEventFeedback(request);

            if (!response.RequestIsFulfilled)
            {
                foreach (var error in response.Errors)
                {
                    ModelState.AddModelError("", error);
                }

                return(BadRequest());
            }

            return(Ok());
        }
Esempio n. 2
0
        public Response UpdateEventFeedback(EventFeedbackRequest request)
        {
            var validationResult = eventFeedbackRequestValidator.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.UpdateEventFeedback(request.SquadId, request.EventId, request.PlayerId, request.Feedback);
            } catch (Exception ex) {
                return(Response.CreateResponse(ex));
            }
            return(Response.CreateSuccessResponse());
        }