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