Exemplo n.º 1
0
        public async Task <IActionResult> AssignUserToEvent([FromBody] UserCompetitionSaveResource eventResource, int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var e = await eventRepository.GetEvent(id);

            if (e == null)
            {
                return(NotFound());
            }

            if (!eventRepository.CompetitionExist(e, eventResource.CompetitionId))
            {
                return(BadRequest("Invalid competition ID."));
            }

            if (!authRepository.IsAuthorizedById(User, eventResource.UserId) && !authRepository.IsModerator(User))
            {
                return(Unauthorized());
            }

            eventRepository.AddUserToCompetition(eventResource.UserId, id, eventResource.CompetitionId);
            await unitOfWork.Complete();

            e = await eventRepository.GetEvent(e.Id);

            var result = mapper.Map <Event, EventResource>(e);

            return(Ok(result));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> RemoveUserFromEvent([FromBody] UserCompetitionSaveResource eventResource, int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var uc = await eventRepository.FindUserCompetition(eventResource.UserId, id, eventResource.CompetitionId);

            if (uc == null)
            {
                return(NotFound());
            }

            if (!authRepository.IsAuthorizedById(User, eventResource.UserId) && !authRepository.IsModerator(User))
            {
                return(Unauthorized());
            }

            eventRepository.RemoveUserFromEvent(uc);
            await unitOfWork.Complete();

            return(Ok());
        }