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