added PublishAndApplyEvent generic and through reflection to call AggregateBus