Response createResponse(JsonObject rawResponse, RandomOrgDataType dataType) { // check for errors var error = JsonHelper.GetJsonObject(rawResponse, "error"); if (error != null) { advisoryDelay = 0; if (ThrowProtocolErrors) { throw new ProtocolViolationException( String.Format(ProtocolException, error ["code"], error ["message"])); } else { return(new Response((int)error ["code"], error ["message"] as string)); } } var result = new Response(rawResponse, dataType); advisoryDelay = result.AdvisoryDelay * TimeSpan.TicksPerMillisecond; return(result); }
internal Response(JsonObject jObject, RandomOrgDataType dataType) { this.Id = (int)jObject ["id"]; var error = JsonHelper.GetJsonObject(jObject, "error"); if (error != null) { this.errorCode = (int)error ["code"]; this.errorMessage = error ["message"] as string; this.DataType = RandomOrgDataType.Error; return; } this.DataType = dataType; jObject = jObject ["result"] as JsonObject; if (jObject == null) { this.DataType = RandomOrgDataType.Error; return; } this.BitsLeft = (int)jObject ["bitsLeft"]; this.RequestsLeft = (int)jObject ["requestsLeft"]; if (dataType == RandomOrgDataType.Usage) { this.rpcObject = jObject; return; } this.AdvisoryDelay = (int)jObject ["advisoryDelay"]; this.BitsUsed = (int)jObject ["bitsUsed"]; if (this.IsSigned) { this.signature = (string)jObject ["signature"]; } jObject = jObject ["random"] as JsonObject; if (jObject == null) { this.DataType = RandomOrgDataType.Error; return; } CompletionTime = DateTime.Parse(jObject ["completionTime"] as string); this.rpcObject = jObject; }
internal Response(JsonObject jObject, RandomOrgDataType dataType) { this.Id = (int)jObject["id"]; this.DataType = dataType; jObject = jObject["result"] as JsonObject; if (jObject == null) { this.DataType = RandomOrgDataType.Error; return; } this.BitsLeft = (int)jObject["bitsLeft"]; this.RequestsLeft = (int)jObject["requestsLeft"]; this.data.Result = jObject; if (dataType == RandomOrgDataType.Usage) { this.data.Usage = new Usage(jObject); return; } this.AdvisoryDelay = (int)jObject["advisoryDelay"]; this.BitsUsed = (int)jObject["bitsUsed"]; jObject = jObject["random"] as JsonObject; if (jObject == null) { this.DataType = RandomOrgDataType.Error; return; } CompletionTime = DateTime.Parse(jObject["completionTime"] as string); switch (dataType) { case RandomOrgDataType.Integer: case RandomOrgDataType.SignedInteger: this.data.Integers = extractData <int>(jObject); break; case RandomOrgDataType.String: case RandomOrgDataType.SignedString: case RandomOrgDataType.Blob: case RandomOrgDataType.SignedBlob: this.data.Strings = extractData <string>(jObject); break; case RandomOrgDataType.Decimal: case RandomOrgDataType.SignedDecimal: case RandomOrgDataType.Gaussian: case RandomOrgDataType.SignedGaussian: this.data.Doubles = extractData <double>(jObject); break; case RandomOrgDataType.UUID: case RandomOrgDataType.SignedUUID: string[] rawUUIDs = extractData <string>(jObject); Guid[] uuids = new Guid[rawUUIDs.Length]; for (int i = 0; i < uuids.Length; i++) { uuids[i] = new Guid(rawUUIDs[i]); } this.data.UUIDs = uuids; break; default: break; } }
Response createResponse(JsonObject rawResponse, RandomOrgDataType dataType) { // check for errors var error = JsonHelper.GetJsonObject(rawResponse, "error"); if(error != null) { advisoryDelay = 0; if(ThrowProtocolErrors) throw new ProtocolViolationException(String.Format(ProtocolException, error["code"], error["message"])); else return new Response((int)error["code"], error["message"] as string); } var result = new Response(rawResponse, dataType); advisoryDelay = result.AdvisoryDelay * TimeSpan.TicksPerMillisecond; return result; }