Esempio n. 1
0
        public void It_deletes_a_role()
        {
            int roleCount;

            using (var transaction = _database.GetTransaction())
            {
                CreateRole(role1);
                var role = _roleTable.GetRoleByName(role1);
                _roleTable.Delete(role.Id);
                roleCount = _roleTable.GetRoles().Count();
            }

            Assert.AreEqual(0, roleCount);
        }
        // ----- User-Role funcionality ---------------------------------------

        /// <summary>
        /// Add a role by ist name: Check if a global or client specific role exists
        /// (take user.ClientId to specify) --> assign it ;-) If not: Take a possibly
        /// existing global role.

        /// </summary>
        /// <param name="user"></param>
        /// <param name="roleName"></param>
        /// <returns></returns>
        public Task AddToRoleAsync(TUser user, string roleName)
        {
            if (user == null)
            {
                throw new ArgumentNullException(IdentityConstants.User);
            }

            var rolesFound = _roleTable.GetRoles().Where(r => r.Name == roleName).ToList();

            if (!rolesFound.Any())
            {
                throw new ArgumentNullException(IdentityConstants.Role);
            }

            var specificRole = rolesFound.FirstOrDefault(r => r.ClientId == user.ClientId);
            var globalRole   = rolesFound.FirstOrDefault(r => r.ClientId == null);
            var roleToAdd    = specificRole ?? globalRole;

            _userRoleTable.Insert(user, roleToAdd.Id);

            return(Task.FromResult <object>(null));
        }
        public async Task <SelectList> RetrieveRoles()
        {
            ApplicationDbContext context = ApplicationDbContext.Create();
            var roletable = new RoleTable(context);
            var roleList  = new List <SelectListItem>();

            var retrievedRoles = await Task.Run(
                () => roletable.GetRoles().
                Select(r => new { r.Id, r.Name }).
                Where(r => r.Name.ToUpper() != "patient".ToUpper()));

            foreach (var role in retrievedRoles)
            {
                var roleItem = new SelectListItem {
                    Value = role.Id.ToString(), Text = role.Name
                };
                roleList.Add(roleItem);
            }

            return(new SelectList(roleList, "Value", "Text", 16));
        }