Exemplo n.º 1
0
 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"));
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        private AppUserAdmin ConvertViewModelToAppUserAdmin(AdminViewModels.AppUserAdminViewModel adminUserVM)
        {
            var user = new AppUserAdmin()
            {
                Id          = adminUserVM.Id,
                Email       = adminUserVM.Email,
                PhoneNumber = adminUserVM.PhoneNumber
            };

            return(user);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 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"));
 }