public static ExchangeBitcoinResponse FromJObject(JObject jObject) { var isSuccess = jObject["success"].ToObject<bool>(); var errors = jObject["errors"] == null ? null : jObject["errors"].Values<string>(); var tjo = jObject["transfer"]; var transferInfo = new TransferInfo( tjo.Value<string>("_type"), tjo.Value<string>("code"), tjo.Value<DateTime?>("created_at"), tjo["fees"] .Select(token => (JProperty) token) .Select(jProperty => new CoinbaseFee( jProperty.Name, new PriceUnit( jProperty.Value["cents"].Value<decimal>() * .01m, jProperty.Value["currency_iso"].Value<string>()))), tjo.Value<string>("status"), tjo.Value<DateTime?>("payout_date"), PriceUnit.FromJToken(tjo["btc"]), PriceUnit.FromJToken(tjo["subtotal"]), PriceUnit.FromJToken(tjo["total"]) ); return new ExchangeBitcoinResponse(isSuccess, errors, transferInfo); }
public ExchangeBitcoinResponse(bool isSuccessful, IEnumerable<string> errors, TransferInfo transfer) { this.IsSuccessful = isSuccessful; this.Transfer = transfer; var enumerable = errors == null ? null : errors.ToArray(); if(enumerable != null && enumerable.Any()) this.Errors = enumerable; }