コード例 #1
0
        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 }));
        }