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)); }
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()); }