public ActionResult UpdateAdminUser(AdminViewModels.AppUserAdminViewModel user) { try { if (ModelState.IsValid) { var userName = User.Identity.GetUserName(); var userToUpdate = ConvertViewModelToAppUserAdmin(user); _portalAdminService.UppdateraAdminAnvandare(userToUpdate, userName); } } catch (Exception e) { Console.WriteLine(e); ErrorManager.WriteToErrorLog("AdminController", "UpdateAdminUser", e.ToString(), e.HResult, User.Identity.Name); var errorModel = new CustomErrorPageModel { Information = "Ett fel inträffade vid uppdatering av Astrid-användare.", ContactEmail = ConfigurationManager.AppSettings["ContactEmail"], }; return(View("CustomError", errorModel)); } return(RedirectToAction("GetAstridUsers")); }
private IEnumerable <AdminViewModels.AppUserAdminViewModel> ConvertAdminUsersToViewModel(IEnumerable <AppUserAdmin> adminUsers, List <ApplicationRole> roller) { var adminUserViewList = new List <AdminViewModels.AppUserAdminViewModel>(); foreach (var user in adminUsers) { var roleVMList = new List <IdentityRoleViewModel>(); var adminUserView = new AdminViewModels.AppUserAdminViewModel { Id = user.Id, Email = user.Email, PhoneNumber = user.PhoneNumber, SkapadDatum = user.SkapadDatum, SkapadAv = user.SkapadAv, AndradDatum = user.AndradDatum, AndradAv = user.AndradAv, Roles = _portalSosService.HamtaAstridAnvandaresRoller(user.Id).Select(x => x.BeskrivandeNamn).ToList() }; //Skapa lista över roller och markera valda roller för aktuell användare foreach (var roll in roller) { var roleVm = new IdentityRoleViewModel { Id = roll.Id, Name = roll.BeskrivandeNamn }; if (adminUserView.Roles.Contains(roll.BeskrivandeNamn)) { roleVm.Selected = true; } roleVMList.Add(roleVm); } //Skapa kommaseparerad textsträng över användarens roller var rolesStr = String.Empty; foreach (var role in adminUserView.Roles) { if (rolesStr.IsEmpty()) { rolesStr = role; } else { rolesStr = rolesStr + ", " + role; } } adminUserView.StringOfRoles = rolesStr; adminUserView.ListOfRoles = roleVMList; adminUserViewList.Add(adminUserView); } return(adminUserViewList); }
private AppUserAdmin ConvertViewModelToAppUserAdmin(AdminViewModels.AppUserAdminViewModel adminUserVM) { var user = new AppUserAdmin() { Id = adminUserVM.Id, Email = adminUserVM.Email, PhoneNumber = adminUserVM.PhoneNumber }; return(user); }
private IEnumerable <AdminViewModels.AppUserAdminViewModel> ConvertAdminUsersToViewModel(IEnumerable <AppUserAdmin> adminUsers) { var adminUserViewList = new List <AdminViewModels.AppUserAdminViewModel>(); foreach (var user in adminUsers) { var adminUserView = new AdminViewModels.AppUserAdminViewModel { Id = user.Id, Email = user.Email, PhoneNumber = user.PhoneNumber, SkapadDatum = user.SkapadDatum, SkapadAv = user.SkapadAv, AndradDatum = user.AndradDatum, AndradAv = user.AndradAv, Roles = UserManager.GetRoles(user.Id) }; var rolesStr = String.Empty; //TODO - Gör lista av roller till sträng tills vidare //for (int i = 0; i < adminUserView.Roles.Count; i++) //{ // //Om första eller sista i listan // if (rolesStr.IsEmpty() || (i++ == adminUserView.Roles.Count)) // { // rolesStr = rolesStr + adminUserView.Roles[i]; // } // else // { // rolesStr = rolesStr + "," + adminUserView.Roles[i]; // } //} foreach (var role in adminUserView.Roles) { if (rolesStr.IsEmpty()) { rolesStr = role; } else { rolesStr = rolesStr + "," + role; } } adminUserView.StringOfRoles = rolesStr; adminUserViewList.Add(adminUserView); } return(adminUserViewList); }
public ActionResult UpdateAdminUser(AdminViewModels.AppUserAdminViewModel user) { try { if (ModelState.IsValid) { var userName = User.Identity.GetUserName(); var userToUpdate = ConvertViewModelToAppUserAdmin(user); _portalSosService.UppdateraAdminAnvandare(userToUpdate, userName); //Lägg till användarens roller med multiselect/ListOfRoles try { var astridRoller = _portalSosService.HamtaAllaAstridRoller(); foreach (var role in user.ListOfRoles) { var rollNamn = astridRoller.SingleOrDefault(x => x.BeskrivandeNamn == role.Name).Name; if (role.Selected) { if (!UserManager.IsInRole(user.Id, rollNamn)) { _portalSosService.KopplaAstridAnvändareTillAstridRoll(userName, user.Id, role.Id); } } else { if (UserManager.IsInRole(user.Id, rollNamn)) { UserManager.RemoveFromRole(user.Id, rollNamn); } } } } catch (Exception e) { throw new ArgumentException(e.Message); } } } catch (ArgumentException e) { ApplicationService.Helpers.ErrorManager.WriteToErrorLog("AdminController", "UpdateAdminUser", e.ToString(), e.HResult, User.Identity.Name); var errorModel = new CustomErrorPageModel { Information = "Ett fel inträffade vid uppdatering av Astrid-användare", ContactEmail = ConfigurationManager.AppSettings["ContactEmail"], }; return(View("CustomError", errorModel)); } catch (Exception e) { Console.WriteLine(e); ErrorManager.WriteToErrorLog("AdminController", "UpdateAdminUser", e.ToString(), e.HResult, User.Identity.Name); var errorModel = new CustomErrorPageModel { Information = "Ett fel inträffade vid uppdatering av Astrid-användare.", ContactEmail = ConfigurationManager.AppSettings["ContactEmail"], }; return(View("CustomError", errorModel)); } return(RedirectToAction("GetAstridUsers")); }