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