Good Samaritan stops Vancouver theft, gets stabbed