public bool RemoveRoleFeature(IApplicationFeaturesAccess access, int roleId, ApplicationFeature feature)
        {
            using (var cn = new SqlConnection(connectionString))
            {
                cn.Open();

                using (var cmd = cn.CreateCommand())
                {
                    cmd.CommandText = "DELETE FROM dbo.ApplicationRoleFeature WHERE (RoleId = @roleId) AND (FeatureId = @featureId);";
                    cmd.AddParameter("roleId", SqlDbType.Int, roleId);
                    cmd.AddParameter("featureId", SqlDbType.NVarChar, feature.ToString());
                    var nuRows = cmd.ExecuteNonQuery();
                    return(nuRows == 1);
                }
            }
        }
        public bool InsertRoleFeature(IApplicationFeaturesAccess access, int roleId, ApplicationFeature feature)
        {
            using (var cn = new SqlConnection(connectionString))
            {
                cn.Open();
                using (var cmd = cn.CreateCommand())
                {
                    cmd.CommandText = ""
                                      + "IF NOT EXISTS(SELECT * FROM dbo.ApplicationRoleFeature WHERE (RoleId = @roleId) AND (FeatureId = @featureId)) BEGIN"
                                      + "  INSERT INTO dbo.ApplicationRoleFeature (RoleId,FeatureId) OUTPUT INSERTED.ID VALUES (@roleId,@featureId); "
                                      + "END ELSE BEGIN"
                                      + "  SELECT ID FROM dbo.ApplicationRoleFeature WHERE (RoleId = @roleId) AND (FeatureId = @featureId)"
                                      + "END";

                    cmd.AddParameter("roleId", SqlDbType.Int, roleId);
                    cmd.AddParameter("featureId", SqlDbType.NVarChar, feature.ToString());

                    var userRoleId = Convert.ToInt32(cmd.ExecuteScalar());

                    return(userRoleId > 0);
                }
            }
        }
예제 #3
0
 public static void AssertFeatureOrThrow(this IApplicationFeaturesAccess access, params ApplicationFeature[] feature)
 {
     access.ApplicationFeatures.AssertFeatureOrThrow(feature);
 }
예제 #4
0
 public static bool HasFeature(this IApplicationFeaturesAccess access, params ApplicationFeature[] feature)
 {
     return(access.ApplicationFeatures.HasFeature(feature));
 }