public async Task <IActionResult> Invite(InviteContactViewModel vm) { if (!ModelState.IsValid) { await RebuildViewModel(vm); return(View("~/Views/ManageUsers/InviteUser/Invite.cshtml", vm)); } var requestingContact = await GetRequestingContact(); var result = await _contactsApiClient.InviteContactToOrganisation(new InviteContactToOrganisationRequest { InvitedByContactId = (await GetRequestingContact()).Id, FamilyName = vm.FamilyName, GivenName = vm.GivenName, Email = vm.Email, OrganisationId = requestingContact.OrganisationId.GetValueOrDefault(), Privileges = vm.PrivilegesViewModel.PrivilegeViewModels.Where(pvm => pvm.Selected).Select(pvm => pvm.Privilege.Id).ToArray() }); if (!result.Success) { ModelState.AddModelError("Email", result.ErrorMessage); await RebuildViewModel(vm); return(View("~/Views/ManageUsers/InviteUser/Invite.cshtml", vm)); } return(RedirectToAction("Invited", new { result.ContactId })); }