/// <summary> /// Adds document collaborator /// </summary> /// <param name="fileId">The document path to add the collaborator to</param> /// <param name="reviewerEmail">The email address of the collaborator</param> /// <param name="reviewerFirstName">The first name of the collaborator</param> /// <param name="reviewerLastName">The last name of the collaborator</param> /// <param name="reviewerInvitationMessage">The invitation text message to be sent to the collaborator</param> /// <param name="rights">The annotation permissions for the collaborator</param> /// <param name="avatar">The file stream of the collaborator's avatar</param> /// <returns>An instance of an object containing the operation result and collaborators details</returns> public SetCollaboratorsResult AddCollaborator(string fileId, string reviewerEmail, string reviewerFirstName, string reviewerLastName, string reviewerInvitationMessage, AnnotationReviewerRights rights, Stream avatar = null) { MemoryStream memoryStream = (MemoryStream)avatar; var reviewer = new GroupDocs.Annotation.Domain.ReviewerInfo { PrimaryEmail = reviewerEmail, FirstName = reviewerFirstName, LastName = reviewerLastName, AccessRights = rights, Avatar = memoryStream != null?memoryStream.ToArray() : new byte[0] }; User user = _userSvc.GetUserByEmail(reviewerEmail); if (user == null) { _userSvc.Add(new User { Email = reviewer.PrimaryEmail, Guid = Guid.NewGuid().ToString(), Photo = reviewer.Avatar, FirstName = reviewer.FirstName, LastName = reviewer.LastName }); user = _userSvc.GetUserByEmail(reviewerEmail); } var document = GetDocument(fileId, user.Id); var result = _mapper.Map <SetCollaboratorsResult>(_annotator.AddCollaborator(document.Id, reviewer)); return(result); }
/// <summary> /// Adds document collaborator /// </summary> /// <param name="fileId">The document path to add the collaborator to</param> /// <param name="reviewerEmail">The email address of the collaborator</param> /// <param name="reviewerFirstName">The first name of the collaborator</param> /// <param name="reviewerLastName">The last name of the collaborator</param> /// <param name="reviewerInvitationMessage">The invitation text message to be sent to the collaborator</param> /// <param name="rights">The annotation permissions for the collaborator</param> /// <param name="avatar">The file stream of the collaborator's avatar</param> /// <returns>An instance of an object containing the operation result and collaborators details</returns> public SetCollaboratorsResult AddCollaborator(string fileId, string reviewerEmail, string reviewerFirstName, string reviewerLastName, string reviewerInvitationMessage, AnnotationReviewerRights rights, Stream avatar = null) { MemoryStream memoryStream = (MemoryStream) avatar; var reviewer = new GroupDocs.Annotation.Domain.ReviewerInfo { PrimaryEmail = reviewerEmail, FirstName = reviewerFirstName, LastName = reviewerLastName, AccessRights = rights, Avatar = memoryStream?.ToArray() ?? new byte[0] }; User user = _userSvc.GetUserByEmail(reviewerEmail); if(user == null) { _userSvc.Add(new User { Email = reviewer.PrimaryEmail, Guid = Guid.NewGuid().ToString(), Photo = reviewer.Avatar, FirstName = reviewer.FirstName, LastName = reviewer.LastName }); user = _userSvc.GetUserByEmail(reviewerEmail); } var document = GetDocument(fileId, user.Id); var result = _mapper.Map<SetCollaboratorsResult>(_annotator.AddCollaborator(document.Id, reviewer)); return result; }