Ejemplo n.º 1
0
        public async Task <IActionResult> UserPage(string title)
        {
            List <AccountUserItemVM> userList = new List <AccountUserItemVM>();

            AccountBoatItemVM[] boatList;

            //Hämta info om användaren som är inloggad
            string       userID = userManager.GetUserId(HttpContext.User);
            IdentityUser user   = await userManager.FindByIdAsync(userID);

            //Om användaren är Admin, hämta lista med alla båtar och alla användare
            if (await userManager.IsInRoleAsync(user, AdminRoleName))
            {
                boatList = repository.GetAllBoats();
                foreach (AccountBoatItemVM boat in boatList)
                {
                    if (boat.Owner != null)
                    {
                        IdentityUser boatOwner = await userManager.FindByIdAsync(boat.Owner);

                        boat.Owner = boatOwner.UserName;
                    }
                }

                foreach (var u in userManager.Users)
                {
                    bool isAdmin = false;
                    if (await userManager.IsInRoleAsync(u, AdminRoleName))
                    {
                        isAdmin = true;
                    }

                    userList.Add(new AccountUserItemVM {
                        UserID = u.Id, Email = u.Email, UserName = u.UserName, Admin = isAdmin
                    });
                }
            }
            else
            {
                boatList = repository.GetUsersBoatsByUID(userID);
            }

            return(View(new AccountUserpageVM
            {
                BoatItem = boatList,
                UserName = user.UserName,
                Email = user.Email,
                Title = title,
                UserItem = userList.ToArray()
            }));
        }