public async Task <T> SendMessageAsync <T>(TMessageId message, object arg = null) { if (ActiveState == null) { throw new InvalidOperationException("No active state to send message to."); } return(await ActiveState.SendMessageAsync <T>(this, message, arg)); }