public async Task <(ErrorResult ErrorResult, Packet Packet)> RequestAsync(Packet packet) { var packetData = packet.Serialize(); var content = new StringContent(packetData); try { var postResponse = await this.client.PostAsync(this.ApiUrl, content).ConfigureAwait(false); var rawResponse = await postResponse.Content.ReadAsStringAsync().ConfigureAwait(false); return(ErrorResult.Success(), Packet.Deserialize(rawResponse)); } catch (Exception ex) { return(new ErrorResult(ErrorCode.InternalError, ex.Message, ex), null); } }