public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
{
if (string.IsNullOrEmpty(roleName))
{
throw CreateArgumentNullOrEmptyException("roleName");
}
using (BlogUnitOfWork context = new BlogUnitOfWork(new ModelContextInit()))
{
dynamic role = context.Roles.FirstOrDefault(Rl => Rl.RoleName == roleName);
if (role == null)
{
throw new InvalidOperationException("Role not found");
}
if (throwOnPopulatedRole)
{
dynamic usersInRole = role.Users.Any;
if (usersInRole)
{
throw new InvalidOperationException(string.Format("Role populated: {0}", roleName));
}
}
else
{
foreach (User usr_loopVariable in role.Users)
{
var usr = usr_loopVariable;
context.Users.Remove(usr);
}
}
context.Roles.Remove(role);
context.SaveChanges();
return true;
}
}