public async Task <IActionResult> AddCollabortor([FromBody] CollaboratorRequestDto collaborator) { int userId = Convert.ToInt32(HttpContext.Items["userId"]); string email = (string)HttpContext.Items["email"]; var addedCollaborator = await _service.AddCollaborator(email, userId, collaborator); return(Ok(new { Data = collaborator, StatusCode = (int)HttpStatusCode.Created, Message = ResponseMessages.SUCCESS })); }
public async Task <CollaboratorResponseDto> AddCollaborator(string email, int userId, CollaboratorRequestDto collaborator) { try { Collaborator modelCollaborator = _mapper.Map <Collaborator>(collaborator); if (email == modelCollaborator.email) { throw new FundooException(ExceptionMessages.SELF_COLLABORATE); } Collaborator collaboratorWithSameUser = await _collaboratorRepository.GetCollaboratorByEmail(modelCollaborator.email, modelCollaborator.NoteId); if (collaboratorWithSameUser != null) { throw new FundooException(ExceptionMessages.ALREADY_COLLABORATER); } Note note = await _noteRepository.GetNote(modelCollaborator.NoteId, userId); if (note == null) { throw new FundooException(ExceptionMessages.NO_SUCH_NOTE); } Message message = new EmailService.Message(new string[] { modelCollaborator.email }, "Added as collaborator", $"<h2>You have been added as collaborated by <p style='color:red'>" + email + "</p> To note <p style='color:green'>" + note.Title + "</p><h2>"); _mqServices.AddToQueue(message); return(_mapper.Map <CollaboratorResponseDto>(await _collaboratorRepository.AddCollaborator(email, modelCollaborator))); } catch (Microsoft.EntityFrameworkCore.DbUpdateException) { throw new FundooException(ExceptionMessages.NO_SUCH_USER); } }