public ActionResult edit(int? id)
        {
            if (id == null)
            {
                return RedirectToAction("Index", "User");
            }
            else
            {
                IUserService services = new UserService();
                User user = services.findAnUser(id.Value);
                ViewBag.user = user;
                //IRepository<User> repository = new UserRepository();
                //User user = repository.findById(id.Value);
                //ViewBag.user = user;

                List<Role> roles = services.getRoles();
                //RoleRepository role_repo = new RoleRepository();
                //IEnumerable<Role> roles = role_repo.List;
                ViewBag.roles = roles;

            }
            return View();
        }
        public string editUser()
        {
            //get data from request
            int selectedUserID = Int32.Parse(Request.Params["userID"]);
            double newBalance = Double.Parse(Request.Params["balance"]);
            int newRoleID = Int32.Parse(Request.Params["role"]);
            string selectedRoleName = Request.Params["roleName"];

            UserService services = new UserService();
            if(services.checkIsManage(selectedUserID))
            {
                return "manage";
            }
            else
            {
                User selectedUser = services.findAnUser(selectedUserID);
                selectedUser.Balance = newBalance;
                selectedUser.RoleID = newRoleID;
                if (services.updateUser(selectedUser))
                {
                    return "true";
                }
            }

            return "false";

            //return services.updateUser(selectedUser);

            /*
            //get the old info of the account
            IRepository<User> repository = new UserRepository();
            int n_selectedUserID = int.Parse(selectedUserID);
            User selectedUser = repository.findById(n_selectedUserID);
            int oldRoleID = selectedUser.RoleID;
            string selectedUserName = selectedUser.UserName;

            IRepository<Role> role_repo = new RoleRepository();
            Role roleInfo = new Role();
            //get old roleName
            roleInfo = role_repo.findById(oldRoleID);
            string oldRoleName = roleInfo.RoleName;
            //get new roleName
            roleInfo = role_repo.findById(newRoleID);
            string newRoleName = roleInfo.RoleName;

            //update user in User table
            selectedUser.Balance = newBalance;
            selectedUser.RoleID = newRoleID;
            repository.Update(selectedUser);

            var context = new NetCafeWeb.Models.ApplicationDbContext();
            var UserManager = new UserManager<NetCafeWeb.Models.ApplicationUser>(new UserStore<NetCafeWeb.Models.ApplicationUser>(context));
            //var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));

            //var result = RoleManager.

            //var store = new Microsoft.AspNet.Identity.EntityFramework.UserStore<NetCafeWeb.Models.ApplicationUser>(new NetCafeWeb.Models.ApplicationDbContext());
            //var manager = new Microsoft.AspNet.Identity.UserManager<NetCafeWeb.Models.ApplicationUser>(store);

            //update the user in asp user
            //var context = new NetCafeWeb.Models.ApplicationDbContext();
            //var account = new AccountController();
            //delete old role for the current user
            ApplicationUser aspSelectedUser = context.Users.Where(u => u.UserName.Equals((selectedUserName), StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
            //ApplicationUser aspSelectedUser = UserManager.Users.FirstOrDefault(u => u.UserName == selectedUserName);

            //account.UserManager.RemoveFromRoleAsync(aspSelectedUser.Id, oldRoleName);
            UserManager.RemoveFromRole(aspSelectedUser.Id, oldRoleName);

            //add new role for the current user
            //account.UserManager.AddToRoleAsync(aspSelectedUser.Id, newRoleName);
            UserManager.AddToRole(aspSelectedUser.Id, newRoleName);

            return true;
            */
        }