/// <summary> /// Persists the request into the registered message queue if configured, /// otherwise calls Execute() to handle the request immediately. /// </summary> /// <param name="request"></param> public override object ExecuteAsync(TRequest request) { if (MessageFactory == null) { return(Execute(request)); } //Capture and persist this async request on this Services 'In Queue' //for execution after this request has been completed using (var producer = MessageFactory.CreateMessageProducer()) { producer.Publish(request); } return(DtoUtils.CreateResponseDto(request)); }