コード例 #1
0
 public FileNamesSearchExecutor(GetFileNamesQuery query, IResponseSender responseSender)
 {
     _query          = query;
     _responseSender = responseSender;
     Id            = Guid.NewGuid();
     _searchResult = new StringBuilder();
 }
コード例 #2
0
 public FileNamesSearchExecutor(GetFileNamesQuery query, IResponseSender responseSender)
 {
     _query = query;
     _responseSender = responseSender;
     Id = Guid.NewGuid();
     _searchResult = new StringBuilder();
 }
コード例 #3
0
 public CommandDispatcher(ICommandRegistry commandRegistry, ICommandTypeHelper commandTypeHelper,
                          IResponseSender responseSender, IEventBus eventBus, ICommandParser commandParser)
 {
     _commandRegistry      = commandRegistry;
     _commandTypeHelper    = commandTypeHelper;
     this._eventBus        = eventBus;
     _commandParser        = commandParser;
     _channelClosedHandler = OnChannelClosed;
     _eventBus.Add(EventKeys.ChannelClosed, _channelClosedHandler);
 }
コード例 #4
0
        public IResponseStrategy Create(IResponseSender responseSender, string requestMessage)
        {
            var result = _strategyDictionary.TryGetValue(requestMessage, out var strategy);

            if (!result)
            {
                strategy = new InvalidResponseStrategy();
            }

            strategy.SetResponseSender(responseSender);

            return(strategy);
        }
コード例 #5
0
ファイル: MockGsmModem.cs プロジェクト: alwyss/TcpModemServer
 public MockGsmModem(ICommandDispatcher dispatcher, IResponseSender responseSender, IEventBus eventBus,
                     IModemListener listener, INotificationManager notificationManager)
 {
     _dispatcher          = dispatcher;
     _responseSender      = responseSender;
     _eventBus            = eventBus;
     _listener            = listener;
     _notificationManager = notificationManager;
     _modemOpenedHandler  = OnModemOpen;
     _dataReceivedHandler = OnDataReceived;
     _eventBus.Add(EventKeys.ModemOpened, _modemOpenedHandler);
     _eventBus.Add(EventKeys.ModemDataReceived, _dataReceivedHandler);
 }
コード例 #6
0
 public ProxyMiddleware(
     RequestDelegate next,
     IRequestCreator requestCreator,
     IRequestSender sender,
     IResponseSender responseSender,
     IRouteResolver routeResolver,
     IExpressionEvaluator evaluator,
     ILogger <ProxyMiddleware> logger)
 {
     this.next           = CheckValue(next, nameof(next));
     this.requestCreator = CheckValue(requestCreator, nameof(requestCreator));
     this.sender         = CheckValue(sender, nameof(sender));
     this.responseSender = CheckValue(responseSender, nameof(responseSender));
     this.routeResolver  = CheckValue(routeResolver, nameof(routeResolver));
     this.evaluator      = CheckValue(evaluator, nameof(evaluator));
     this.logger         = CheckValue(logger, nameof(logger));
 }
コード例 #7
0
        private void MessageReceivedEvent(object sender, EventArgs e)
        {
            IResponseSender responseSender    = null;
            ReceivedMessage message           = null;
            string          rawMessageContent = String.Empty;

            try
            {
                message = (e as MessageEventArgs).Message;

                _log.DebugFormat("{0} Message Received: {1}", _processId, message);

                rawMessageContent = Helper.ConvertToTextBasedOnEncoding(message.Content, message.MessageContentType);

                _log.DebugFormat("{0} ReportRequest converted to text: {1}", _processId, rawMessageContent);

                object reportRequest = Activities.RequestHandler.Deserialize(rawMessageContent);

                ValidadeRequestData(reportRequest as ReportRequest, rawMessageContent);

                _log.DebugFormat("{0} ReportRequest deserialized", _processId);

                var facade = FacadeFactory.Create(reportRequest as ReportRequest);

                var data = facade.GetIt(reportRequest as ReportRequest);

                responseSender = ResponseSenderFactory.Create(reportRequest as ReportRequest);

                if (data == null)
                {
                    // send 204 no content
                    var response = CreateResponseForNoContentReport(reportRequest as ReportRequest);
                    responseSender.Send(response);
                    return;
                }


                var writer = ReportWriterFactory.Create(reportRequest as ReportRequest);

                //any time the writer finish creating the report, we automatically will send the status to the client
                writer.ReportCreated += responseSender.Send;

                writer.Write(data, reportRequest as ReportRequest);

                _log.DebugFormat("{0} MessageEventArgs", _processId);
            }
            catch (BadPayloadException ex)
            {
                //in this case, it is not possible to reply to the sender, since the payload has problems
                //so we will send a message to the async reports exception queue using an
                //appropriate routing key
                _log.Error(ex.BadPayloadMessage.Status.Message);
                _log.Error(ex.BadPayloadMessage.Status.Detail);
                _log.Error(ex.BadPayloadMessage.RawRequestData);


                var queueSender = ResponseSenderFactory.Create(ResponseProvider.MessageQueue);
                queueSender.Send(ex.BadPayloadMessage);
            }

            catch (RequestException ex)
            {
                _log.Error(ex.ResponseData.Status.Detail, ex);
                if (responseSender != null)
                {
                    responseSender.Send(ex.ResponseData);
                }
            }
            catch (Exception ex)
            {
                _log.Error("Unknown error", ex);
                var queueSender = ResponseSenderFactory.Create(ResponseProvider.MessageQueue);

                var statusData = new ComplexTypes.ResponseStatus();
                statusData.Detail     = Helpers.Response.AggregateExceptionMessages(ex);
                statusData.Message    = "Unknown Error";
                statusData.StatusCode = StatusCode._500_Internal_Server_Error;

                var badPayloadMessage = new BadPayloadMessage()
                {
                    RawRequestData = rawMessageContent,
                    Status         = statusData
                };


                queueSender.Send(badPayloadMessage);

                throw ex;
            }
        }
コード例 #8
0
 public CalculationController(ICalculationRepository repository, ICalculator calculator, IResponseSender responseSender)
 {
     _repository     = repository;
     _calculator     = calculator;
     _responseSender = responseSender;
 }
コード例 #9
0
 public void SetResponseSender(IResponseSender responseSender)
 {
     _responseSender = responseSender;
 }
コード例 #10
0
 protected NotificationSender(IEventBus eventBus, IResponseSender responseSender)
 {
     _eventBus       = eventBus;
     _responseSender = responseSender;
 }
コード例 #11
0
 public UdpDataNotificationSender(IEventBus eventBus, IResponseSender responseSender) : base(eventBus, responseSender)
 {
 }
コード例 #12
0
 public ConnectionExecutor(ConnectionQuery query, IResponseSender responseSender)
 {
     Id              = Guid.NewGuid();
     _query          = query;
     _responseSender = responseSender;
 }
コード例 #13
0
 public ConnectionExecutor(ConnectionQuery query, IResponseSender responseSender)
 {
     Id = Guid.NewGuid();
     _query = query;
     _responseSender = responseSender;
 }
コード例 #14
0
 public CmeErrorSender(IResponseSender responseSender)
 {
     _responseSender = responseSender;
 }
コード例 #15
0
 public DteDataSender(IResponseSender responseSender)
 {
     _responseSender = responseSender;
 }
コード例 #16
0
 public NotifSender(IResponseSender responseSender)
 {
     _responseSender = responseSender;
 }
コード例 #17
0
 public RoutingController(IResponseSender responseSender, IResponseHandler responseHandler)
 {
     _responseSender  = responseSender;
     _responseHandler = responseHandler;
     _logger          = LoggerFactory.GetLogger(LoggerType.Console);
 }