public override bool ReleaseApplicationLock() { return(WrappedConnection.ExecuteDbCommand("sp_releaseapplock", cmd => { cmd.CommandType = CommandType.StoredProcedure; var outParam = cmd.CreateParameter(); outParam.ParameterName = "@result"; outParam.DbType = DbType.Int32; outParam.Direction = ParameterDirection.ReturnValue; cmd.Parameters.Add(outParam); var inParam1 = cmd.CreateParameter(); inParam1.ParameterName = "@Resource"; inParam1.Value = LOCK_ID; inParam1.DbType = DbType.String; inParam1.Direction = ParameterDirection.Input; cmd.Parameters.Add(inParam1); var inParam2 = cmd.CreateParameter(); inParam2.ParameterName = "@LockOwner"; inParam2.Value = "Session"; inParam2.DbType = DbType.String; inParam2.Direction = ParameterDirection.Input; cmd.Parameters.Add(inParam2); }, cmd => { cmd.ExecuteNonQuery(); return (int)(cmd.Parameters["@result"] as IDbDataParameter).Value; }) >= 0); }