Esempio n. 1
0
        public async Task <IActionResult> EditRoleUser(EditRoleUserViewModel viewModel)
        {
            var roleUser         = viewModel.MapToRoleUserEntity();
            var authorisedOrgIds = HttpContext.User.GetOrganisationIds();
            var organisationId   = new Guid(HttpContext.Session.GetString(_organisationId));

            roleUser.OrganisationId = organisationId;

            var emailAlreadyInUseResult = await _identityManagementRepository.IsEmailInUseAsync(roleUser, authorisedOrgIds);

            if (emailAlreadyInUseResult.Value)
            {
                ModelState.AddModelError("Email", emailAlreadyInUseResult.OperationError.Message);
                return(View(viewModel));
            }

            var updatingRoleUser = viewModel.MapToRoleUserEntity();
            var updateResult     = await _identityManagementRepository.UpdateRoleUserAsync(updatingRoleUser, authorisedOrgIds);

            if (updateResult.IsError)
            {
                ModelState.AddModelError(string.Empty, updateResult.OperationError.Message);
                return(View(viewModel));
            }

            return(RedirectToAction(nameof(OrganisationRoleUsers), new { organisationId }));
        }