コード例 #1
0
        public IActionResult UsersIndex()
        {
            var identityUsers = _userManager.Users.OrderBy(x => x.LastName).ToList();
            var libraryUsers  = _libraryUnitOfWork.LibUserRepository.GetAll();

            foreach (var libUser in libraryUsers)
            {
                libUser.Instruments = new List <InstrumentTO>();
                foreach (var instruId in libUser.InstrumentIds)
                {
                    var instru = _libraryUnitOfWork.InstrumentRepository.GetById(instruId);
                    libUser.Instruments.Add(instru);
                }
            }
            var globalUsers = new List <GlobalUserVM>();

            foreach (var identityUser in identityUsers)
            {
                var globalUserVM = new GlobalUserVM
                {
                    IdentityUser = identityUser,
                    LibraryUser  = libraryUsers.First(x => x.IdentityUserId == identityUser.Id),
                    UserRoles    = _userManager.GetRolesAsync(identityUser).Result.ToList(),
                };
                globalUsers.Add(globalUserVM);
            }
            return(View(globalUsers));
        }
コード例 #2
0
        public IActionResult ModifyUser(int id)
        {
            var identityUser = _userManager.FindByIdAsync(id.ToString()).Result;
            var libraryUsers = _libraryUnitOfWork.LibUserRepository.GetAll();
            var libUser      = libraryUsers.First(x => x.IdentityUserId == identityUser.Id);

            libUser.Instruments = new List <InstrumentTO>();
            foreach (var instruId in libUser.InstrumentIds)
            {
                var instru = _libraryUnitOfWork.InstrumentRepository.GetById(instruId);
                libUser.Instruments.Add(instru);
            }
            var allInstruments = _libraryUnitOfWork.InstrumentRepository.GetAll().OrderBy(x => x.Name).ToList();

            foreach (var instr in allInstruments)
            {
                if (libUser.Instruments.Any(inst => inst.Id == instr.Id))
                {
                    instr.IsSelected = true;
                }
            }
            var roles      = _roleManager.Roles.ToList();
            var globalUser = new GlobalUserVM
            {
                IdentityUser   = identityUser,
                LibraryUser    = libUser,
                UserRoles      = _userManager.GetRolesAsync(identityUser).Result.ToList(),
                Roles          = roles,
                AllInstruments = allInstruments,
            };

            return(View(globalUser));
        }
コード例 #3
0
        public IActionResult ModifyUser(int id, GlobalUserVM globalUser)
        {
            try
            {
                var identityUser = _userManager.FindByIdAsync(id.ToString()).Result;
                identityUser.Email          = globalUser.IdentityUser.Email;
                identityUser.FirstName      = globalUser.IdentityUser.FirstName;
                identityUser.LastName       = globalUser.IdentityUser.LastName;
                identityUser.IsGarde        = globalUser.IdentityUser.IsGarde;
                identityUser.IsIndependance = globalUser.IdentityUser.IsIndependance;

                // We need to get all roles from DB, don't trust anything from the client:
                var roles   = _roleManager.Roles.ToList();
                var libUser = _libraryUnitOfWork.LibUserRepository.GetByIdentityUserId(id);

                libUser.Instruments   = globalUser.AllInstruments.Where(inst => inst.IsSelected == true).ToList();
                libUser.InstrumentIds = libUser.Instruments.Select(instru => instru.Id).ToList();

                // Browse the roles to set or unset from SelectedRoles in View Model:
                var selectedRoles = globalUser.SelectedRoles;
                for (var i = 0; i < selectedRoles.Length; i++)
                {
                    // First: check if user has the current role in the loop:
                    var hasRole = _userManager.IsInRoleAsync(identityUser, roles[i].Name).Result;
                    if (selectedRoles[i] && !hasRole)
                    {
                        // User doesn't have the role yet, add it:
                        var r1 = _userManager.AddToRoleAsync(identityUser, roles[i].Name);
                    }
                    else if (!selectedRoles[i] && hasRole)
                    {
                        // User has the role, but it was unchecked in model.
                        // Remove the role from the user:
                        var r2 = _userManager.RemoveFromRoleAsync(identityUser, roles[i].Name);
                    }
                }
                // TEST INFERNAL

                // FIN TEST INFERNAL
                //libUser.Instruments = null;
                var temp2 = _libraryUnitOfWork.LibUserRepository.Update(libUser);
                var temp3 = _userManager.UpdateAsync(identityUser);

                return(RedirectToAction(nameof(UsersIndex)));
            }
            catch (Exception)
            {
                return(View());
            }
        }
コード例 #4
0
        public IActionResult LibraryIndex()
        {
            var             isSignedIn = _signInManager.IsSignedIn(User);
            ApplicationUser user;

            if (isSignedIn)
            {
                user = _userManager.GetUserAsync(User).Result;
                var libUser    = _libraryUnitOfWork.LibUserRepository.GetByIdentityUserId(user.Id);
                var globalUser = new GlobalUserVM
                {
                    IdentityUser = user,
                    LibraryUser  = libUser,
                };
                return(View(globalUser));
            }
            return(RedirectToAction("HomeIndex", "Home"));
        }