Request DecodeRequest(byte[] encodedRequest) { EventOccurred?.Invoke(this, new ServerEvent { EventType = EventType.DetermineRequestTypeStarted }); var requestType = RequestDecoder.ReadRequestType(encodedRequest); var newRequest = _decodeRequestFunctions[requestType].Invoke(encodedRequest); newRequest.Status = RequestStatus.Pending; newRequest.Direction = TransferDirection.Inbound; newRequest.DecodeRequest(); AssignIdToNewRequest(newRequest); EventOccurred?.Invoke(this, new ServerEvent { EventType = EventType.DetermineRequestTypeComplete, RequestType = newRequest.Type }); return(newRequest); }
public virtual Result DecodeRequest() { if (RequestBytes == null) { return(Result.Fail("Unable to perform the requested operation, no binary data has been received")); } Type = RequestDecoder.ReadRequestType(RequestBytes); RemoteServerInfo = RequestDecoder.ReadRemoteServerInfo(RequestBytes); return(Result.Ok()); }