public async Task <List <ProviderUser> > InviteUserAsync(Guid providerId, Guid invitingUserId, ProviderUserInvite invite) { var provider = await _providerRepository.GetByIdAsync(providerId); if (provider == null || invite?.Emails == null || !invite.Emails.Any()) { throw new NotFoundException(); } var providerUsers = new List <ProviderUser>(); foreach (var email in invite.Emails) { // Make sure user is not already invited var existingProviderUserCount = await _providerUserRepository.GetCountByProviderAsync(providerId, email, false); if (existingProviderUserCount > 0) { continue; } var providerUser = new ProviderUser { ProviderId = providerId, UserId = null, Email = email.ToLowerInvariant(), Key = null, Type = invite.Type, Status = ProviderUserStatusType.Invited, CreationDate = DateTime.UtcNow, RevisionDate = DateTime.UtcNow, }; if (invite.Permissions != null) { providerUser.Permissions = JsonSerializer.Serialize(invite.Permissions, new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, }); } await _providerUserRepository.CreateAsync(providerUser); await SendInviteAsync(providerUser, provider); providerUsers.Add(providerUser); } await _eventService.LogProviderUsersEventAsync(providerUsers.Select(pu => (pu, EventType.ProviderUser_Invited, null as DateTime?))); return(providerUsers); }
public Task <List <ProviderUser> > InviteUserAsync(Guid providerId, Guid invitingUserId, ProviderUserInvite providerUserInvite) => throw new NotImplementedException();
public Task <List <Tuple <ProviderUser, string> > > ResendInvitesAsync(ProviderUserInvite <Guid> invite) => throw new NotImplementedException();
public Task <List <ProviderUser> > InviteUserAsync(ProviderUserInvite <string> invite) => throw new NotImplementedException();