Ejemplo n.º 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 }));
        }
Ejemplo n.º 2
0
        private async Task RebuildViewModel(InviteContactViewModel vm)
        {
            var privileges = await _contactsApiClient.GetPrivileges();

            foreach (var privilegeViewModel in vm.PrivilegesViewModel.PrivilegeViewModels)
            {
                privilegeViewModel.Privilege = privileges.Single(p => p.Id == privilegeViewModel.Privilege.Id);
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Invite(string backController = "ManageUsers", string backAction = "Index")
        {
            var privileges = await _contactsApiClient.GetPrivileges();

            var vm = new InviteContactViewModel
            {
                PrivilegesViewModel = new EditPrivilegesViewModel
                {
                    PrivilegeViewModels = privileges.Select(p => new PrivilegeViewModel {
                        Privilege = p
                    }).ToArray()
                },
                BackController = backController,
                BackAction     = backAction
            };


            return(View("~/Views/ManageUsers/InviteUser/Invite.cshtml", vm));
        }