private async Task <List <BuilderParticipant> > AddSigner(
            Invitation invitation,
            List <BuilderParticipant> meetingParticipants,
            IList <Participant> existingParticipants,
            InvitedPersonForEditCommand person,
            int sortKey,
            Organization organization)
        {
            var personFromMain = await _personApiService.GetPersonByOidWithPrivilegesAsync(_plantProvider.Plant,
                                                                                           person.AzureOid.ToString(), _objectName, _signerPrivileges);

            if (personFromMain != null)
            {
                var existingParticipant = existingParticipants.SingleOrDefault(p => p.Id == person.Id);
                if (existingParticipant != null)
                {
                    invitation.UpdateParticipant(
                        existingParticipant.Id,
                        organization,
                        IpoParticipantType.Person,
                        null,
                        personFromMain.FirstName,
                        personFromMain.LastName,
                        personFromMain.Email,
                        new Guid(personFromMain.AzureOid),
                        sortKey,
                        person.RowVersion);
                }
                else
                {
                    invitation.AddParticipant(new Participant(
                                                  _plantProvider.Plant,
                                                  organization,
                                                  IpoParticipantType.Person,
                                                  null,
                                                  personFromMain.FirstName,
                                                  personFromMain.LastName,
                                                  personFromMain.UserName,
                                                  personFromMain.Email,
                                                  new Guid(personFromMain.AzureOid),
                                                  sortKey));
                }
                meetingParticipants = InvitationHelper.AddPersonToOutlookParticipantList(personFromMain, meetingParticipants);
            }
            else
            {
                throw new IpoValidationException($"Person does not have required privileges to be the {organization} participant.");
            }
            return(meetingParticipants);
        }
        private async Task <List <BuilderParticipant> > AddSigner(
            Invitation invitation,
            List <BuilderParticipant> meetingParticipants,
            IInvitedPersonForCommand invitedSigner,
            int sortKey,
            Organization organization)
        {
            var person = await _personApiService.GetPersonByOidWithPrivilegesAsync(
                _plantProvider.Plant,
                invitedSigner.AzureOid.ToString(),
                _objectName,
                _signerPrivileges);

            if (person != null)
            {
                invitation.AddParticipant(new Participant(
                                              _plantProvider.Plant,
                                              organization,
                                              IpoParticipantType.Person,
                                              null,
                                              person.FirstName,
                                              person.LastName,
                                              person.UserName,
                                              person.Email,
                                              new Guid(person.AzureOid),
                                              sortKey));
                meetingParticipants = InvitationHelper.AddPersonToOutlookParticipantList(person, meetingParticipants);
            }
            else
            {
                throw new IpoValidationException(
                          $"Person does not have required privileges to be the {organization} participant.");
            }

            return(meetingParticipants);
        }