public async Task <ActionResult> CreateAccount(Guid key, SystemAccountDto systemAccount) { systemAccount.Identifier = systemAccount.Email; systemAccount.CreateNew = true; var validationMsg = ValidateSystemAccount(systemAccount); if (validationMsg != string.Empty) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, validationMsg)); } var requestDispacther = CreateAsyncRequestDispatcher(); var assignAccountRequest = new AssignAccountRequest { OrganizationKey = (Guid)UserContext.Current.OrganizationKey, PatientKey = key, SystemAccountDto = systemAccount, }; requestDispacther.Add(assignAccountRequest); var response = await requestDispacther.GetAsync <AssignAccountResponse> (); if (response.SystemAccountDto.DataErrorInfoCollection.Any()) { var msg = response.SystemAccountDto.DataErrorInfoCollection.FirstOrDefault().Message; _logger.Error(msg); return(new JsonResult { Data = new { error = true, errors = response.SystemAccountDto.DataErrorInfoCollection } }); } return(PartialView("EditorTemplates/SystemAccountDto", response.SystemAccountDto)); }
private void SetupAvailableRoles(SystemAccountDto systemAccountDto) { using (var connection = _connectionFactory.CreateConnection()) { var allRoles = connection.Query <RoleDto>("SELECT RoleKey as 'Key', Name FROM SecurityModule.Role WHERE OrganizationKey = @OrganizationKey", new { OrganizationKey = UserContext.Current.OrganizationKey.ToString() }); if (systemAccountDto == null || systemAccountDto.Roles == null) { ViewData["AvailableRoles"] = allRoles.Select((r => new SelectListItem { Selected = false, Text = r.Name, Value = r.Key.ToString() })).OrderBy(s => s.Text).ToList(); } else { var availableRoles = allRoles.Where(r => systemAccountDto.Roles.All(role => role.Key != r.Key)); ViewData["AvailableRoles"] = availableRoles.Select((r => new SelectListItem { Selected = false, Text = r.Name, Value = r.Key.ToString() })).OrderBy(s => s.Text).ToList(); } } }