public byte[] Process(byte[] data) { object result; try { var requestName = _requestParser.GetRequestName(data); var command = _commandLocator.GetCommand(requestName); if (command == null) { throw new ProcessException(string.Format("The request '{0}' is unknown.", requestName)); } result = ExecuteCommand(command, data); } catch (TargetInvocationException ex) { result = new ErrorResponse { Error = ex.InnerException.Message }; } catch (Exception ex) { result = new ErrorResponse { Error = ex.Message }; } return(_requestParser.ConvertToBytes(result)); }
public void SendRequest <TRequest>(TRequest request) { try { var data = _requestParser.ConvertToBytes(request); _connection.Send(data); } catch (ConnectionException ex) { throw new RequestException("Unable to send the request.", ex); } }