public async Task ChangeStatus(int participantId, ProjectParticipationStatus status) { try { var participant = await _unitOfWork.Repository <ProjectParticipation>().GetAll() .Include(p => p.Project) .FirstOrDefaultAsync(x => x.Id == participantId); if (participant == null) { throw new NullReferenceException( $"Error while changing status. Participant with id {nameof(participantId)}={participantId} not found"); } participant.Status = status; _unitOfWork.Repository <ProjectParticipation>().Update(participant); await _unitOfWork.SaveChangesAsync(); if (status == ProjectParticipationStatus.Approved) { await _chatService.JoinToChat((int)participant.Project.ChatId, participant.UserId); } } catch (Exception ex) { throw new Exception($"Error while updating the status for {nameof(participantId)}:{participantId}", ex); } }
public async Task <IActionResult> ChangeStatus(int participantId, [FromBody] ProjectParticipationStatus status) { if (participantId == default) { throw new ArgumentException($"{nameof(participantId)} can not be 0"); } await _service.ChangeStatusAsync(participantId, status); return(Ok()); }
public async Task ChangeStatusAsync(int participantId, ProjectParticipationStatus status) { try { ProjectParticipation participant = _unitOfWork.Repository <ProjectParticipation>() .Get().SingleOrDefault(x => x.Id == participantId); participant.Status = status; _unitOfWork.Repository <ProjectParticipation>().Update(participant); await _unitOfWork.SaveChangesAsync(); } catch (Exception ex) { throw new Exception($"Error while updating the status for {nameof(participantId)}:{participantId}", ex); } }