public override bool DeleteUser(string username, bool deleteAllRelatedData) { User user = User.GetByUserName(username); bool result = false; try { if (user != null) { user.IsDeleted = true; user.IsApproved = false; user.Save(); if (deleteAllRelatedData) { UserRoleCollection roles = UserRole.Where(c => c.UserId == user.Id); AccountCollection accounts = Account.Where(c => c.UserId == user.Id); PasswordCollection passwords = Password.Where(c => c.UserId == user.Id); PasswordResetCollection resets = PasswordReset.Where(c => c.UserId == user.Id); PasswordFailureCollection failures = PasswordFailure.Where(c => c.UserId == user.Id); LockOutCollection lockouts = LockOut.Where(c => c.UserId == user.Id); LoginCollection logins = Login.Where(c => c.UserId == user.Id); PasswordQuestionCollection questions = PasswordQuestion.Where(c => c.UserId == user.Id); SettingCollection settings = Setting.Where(c => c.UserId == user.Id); SessionCollection session = Session.Where(c => c.UserId == user.Id); Database db = Db.For <User>(); SqlStringBuilder sql = db.ServiceProvider.Get <SqlStringBuilder>(); roles.WriteDelete(sql); accounts.WriteDelete(sql); passwords.WriteDelete(sql); resets.WriteDelete(sql); failures.WriteDelete(sql); lockouts.WriteDelete(sql); logins.WriteDelete(sql); questions.WriteDelete(sql); settings.WriteDelete(sql); session.WriteDelete(sql); sql.Execute(db); } } } catch (Exception ex) { result = false; Log.AddEntry("{0}.{1}::{2}", ex, this.GetType().Name, MethodBase.GetCurrentMethod().Name, ex.Message); } return(result); }