From 5fd41cc80166aac94acc3c1d29ec3d4ba2872411 Mon Sep 17 00:00:00 2001 From: kyh <1329522@naver.com> Date: Tue, 4 Oct 2022 11:19:36 +0900 Subject: [PATCH] =?UTF-8?q?Web=20Service=20Function=20Try=20Catch=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Million/WebMangement/WebServiceFunctions.cs | 645 +++++++++++--------- 1 file changed, 354 insertions(+), 291 deletions(-) diff --git a/Million/WebMangement/WebServiceFunctions.cs b/Million/WebMangement/WebServiceFunctions.cs index c4583df..3930fe4 100644 --- a/Million/WebMangement/WebServiceFunctions.cs +++ b/Million/WebMangement/WebServiceFunctions.cs @@ -70,21 +70,28 @@ namespace Million.WebServices /// public static List GetUpbitMarketDatas(string resResult) { - var objectList = JsonConvert.DeserializeObject>>(resResult.ToString()); - var marKetDataList = new List(); - foreach (var item in objectList) + try { - var marketData = new MarketData(); - marketData.CodeFullName = item["market"].ToString(); - var names = marketData.CodeFullName.Split('-'); - marketData.CodeName = names[1]; - marketData.KorName = item["korean_name"].ToString(); - marketData.Payment = names[0]; - marketData.ExchangePlace = - marketData.ExchangePlace = Enum.GetName(typeof(CommonProperty.ExchangePlace), CommonProperty.ExchangePlace.Upbit); - marKetDataList.Add(marketData); + var objectList = JsonConvert.DeserializeObject>>(resResult.ToString()); + var marKetDataList = new List(); + foreach (var item in objectList) + { + var marketData = new MarketData(); + marketData.CodeFullName = item["market"].ToString(); + var names = marketData.CodeFullName.Split('-'); + marketData.CodeName = names[1]; + marketData.KorName = item["korean_name"].ToString(); + marketData.Payment = names[0]; + marketData.ExchangePlace = + marketData.ExchangePlace = Enum.GetName(typeof(CommonProperty.ExchangePlace), CommonProperty.ExchangePlace.Upbit); + marKetDataList.Add(marketData); + } + return marKetDataList; + } + catch (Exception e) + { + return new List(); } - return marKetDataList; } /// @@ -94,62 +101,70 @@ namespace Million.WebServices /// public static Order GetOrderInformation(string resResult) { - var data = JsonConvert.DeserializeObject>(resResult.ToString()); + try + { + var data = JsonConvert.DeserializeObject>(resResult.ToString()); - var returnData = new Order(); + var returnData = new Order(); - double.TryParse(data["price"]?.ToString(), out var price); - double.TryParse(data["volume"]?.ToString(), out var volume); - double.TryParse(data["remaining_volume"]?.ToString(), out var remaining_volume); - double.TryParse(data["reserved_fee"]?.ToString(), out var reserved_fee); - double.TryParse(data["remaining_fee"]?.ToString(), out var remaining_fee); - double.TryParse(data["paid_fee"]?.ToString(), out var paid_fee); - double.TryParse(data["locked"]?.ToString(), out var lockedCost); - double.TryParse(data["executed_volume"]?.ToString(), out var executed_volume); + double.TryParse(data["price"]?.ToString(), out var price); + double.TryParse(data["volume"]?.ToString(), out var volume); + double.TryParse(data["remaining_volume"]?.ToString(), out var remaining_volume); + double.TryParse(data["reserved_fee"]?.ToString(), out var reserved_fee); + double.TryParse(data["remaining_fee"]?.ToString(), out var remaining_fee); + double.TryParse(data["paid_fee"]?.ToString(), out var paid_fee); + double.TryParse(data["locked"]?.ToString(), out var lockedCost); + double.TryParse(data["executed_volume"]?.ToString(), out var executed_volume); - int.TryParse(data["trades_count"]?.ToString(), out var trades_count); + int.TryParse(data["trades_count"]?.ToString(), out var trades_count); - returnData.Uuid = data["uuid"]?.ToString(); - returnData.OrderType = data["ord_type"]?.ToString(); - returnData.OrderPrice = price; - returnData.Side = data["side"]?.ToString(); - returnData.State = data["state"]?.ToString(); - returnData.CoinFullName = data["market"]?.ToString(); - returnData.CreateOrderTime = Convert.ToDateTime(data["created_at"]?.ToString()); - returnData.Volume = volume; - returnData.RemainingVolume = remaining_volume; - returnData.RemainingFee = remaining_fee; - returnData.ReservedFee = reserved_fee; - returnData.PaidFee = paid_fee; - returnData.LockedCost = lockedCost; - returnData.ExecutedVolume = executed_volume; - returnData.TradeCount = trades_count; + returnData.Uuid = data["uuid"]?.ToString(); + returnData.OrderType = data["ord_type"]?.ToString(); + returnData.OrderPrice = price; + returnData.Side = data["side"]?.ToString(); + returnData.State = data["state"]?.ToString(); + returnData.CoinFullName = data["market"]?.ToString(); + returnData.CreateOrderTime = Convert.ToDateTime(data["created_at"]?.ToString()); + returnData.Volume = volume; + returnData.RemainingVolume = remaining_volume; + returnData.RemainingFee = remaining_fee; + returnData.ReservedFee = reserved_fee; + returnData.PaidFee = paid_fee; + returnData.LockedCost = lockedCost; + returnData.ExecutedVolume = executed_volume; + returnData.TradeCount = trades_count; - if (data.ContainsKey("trades")){ - var tradeList = JsonConvert.DeserializeObject>>(JsonConvert.SerializeObject(data["trades"]?.ToString())); + if (data.ContainsKey("trades")) + { + var tradeList = JsonConvert.DeserializeObject>>(JsonConvert.SerializeObject(data["trades"]?.ToString())); //(List>)data["trades"]; - foreach (var item in tradeList) - { - var trade = new Trade(); - trade.CoinFullName = item["market"]?.ToString(); - trade.Uuid = item["uuid"]?.ToString(); - trade.Side = item["side"]?.ToString(); + foreach (var item in tradeList) + { + var trade = new Trade(); + trade.CoinFullName = item["market"]?.ToString(); + trade.Uuid = item["uuid"]?.ToString(); + trade.Side = item["side"]?.ToString(); - double.TryParse(item["price"]?.ToString(), out var priceData); - double.TryParse(item["volume"]?.ToString(), out var volumeData); - double.TryParse(item["funds"]?.ToString(), out var funds); + double.TryParse(item["price"]?.ToString(), out var priceData); + double.TryParse(item["volume"]?.ToString(), out var volumeData); + double.TryParse(item["funds"]?.ToString(), out var funds); - trade.Price = priceData; - trade.Volume = volumeData; - trade.TotalPrice = funds; + trade.Price = priceData; + trade.Volume = volumeData; + trade.TotalPrice = funds; - returnData.TradeList.Add(trade); + returnData.TradeList.Add(trade); + } } - } - - return returnData; + + return returnData; + } + catch (Exception e) + { + return new Order(); + } } /// @@ -159,33 +174,40 @@ namespace Million.WebServices /// public static List GetConclusionList(string resResult) { - var datas = JsonConvert.DeserializeObject>>(resResult.ToString()); - - var returnData = new List(); - - foreach(var item in datas) + try { - double.TryParse(item["trade_price"]?.ToString(), out var trade_price); - double.TryParse(item["trade_volume"]?.ToString(), out var trade_volume); - double.TryParse(item["prev_closing_price"]?.ToString(), out var prev_closing_price); - double.TryParse(item["change_price"]?.ToString(), out var change_price); - long.TryParse(item["sequential_id"]?.ToString(), out var sequential_id); - var dateTimeStr = item["trade_date_utc"]?.ToString() + " " + item["trade_time_utc"]?.ToString(); + var datas = JsonConvert.DeserializeObject>>(resResult.ToString()); - var data = new Conclusion(); - data.CoinfullName = item["market"]?.ToString(); - data.TradeTime = Convert.ToDateTime(dateTimeStr).ToUniversalTime(); - data.TradePrice = trade_price; - data.TradeVolume = trade_volume; - data.BeforeDayClosePrice = prev_closing_price; - data.ChangePrice = change_price; - data.OrderType = item["ask_bid"]?.ToString(); - data.SequenceId = sequential_id; + var returnData = new List(); - returnData.Add(data); + foreach (var item in datas) + { + double.TryParse(item["trade_price"]?.ToString(), out var trade_price); + double.TryParse(item["trade_volume"]?.ToString(), out var trade_volume); + double.TryParse(item["prev_closing_price"]?.ToString(), out var prev_closing_price); + double.TryParse(item["change_price"]?.ToString(), out var change_price); + long.TryParse(item["sequential_id"]?.ToString(), out var sequential_id); + var dateTimeStr = item["trade_date_utc"]?.ToString() + " " + item["trade_time_utc"]?.ToString(); + + var data = new Conclusion(); + data.CoinfullName = item["market"]?.ToString(); + data.TradeTime = Convert.ToDateTime(dateTimeStr).ToUniversalTime(); + data.TradePrice = trade_price; + data.TradeVolume = trade_volume; + data.BeforeDayClosePrice = prev_closing_price; + data.ChangePrice = change_price; + data.OrderType = item["ask_bid"]?.ToString(); + data.SequenceId = sequential_id; + + returnData.Add(data); + } + + return returnData; + } + catch (Exception e) + { + return new List(); } - - return returnData; } /// @@ -197,44 +219,53 @@ namespace Million.WebServices { var returnData = new List(); - var datas = JsonConvert.DeserializeObject>>(resResult.ToString()); - foreach (var item in datas) + try { - var data = new OrderBook(); - string timestamp = item["timestamp"]?.ToString(); - var dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime(); - var doubleData = Convert.ToDouble(timestamp); - - double.TryParse(item["total_ask_size"]?.ToString(), out var total_ask_size); - double.TryParse(item["total_bid_size"]?.ToString(), out var total_bid_size); - - data.CoinFullName = item["market"]?.ToString(); - data.CreateOrderBookDateTime = dateTime.AddMilliseconds(doubleData); - data.TotalBuySize = total_bid_size; - data.TotalSellSize = total_ask_size; - - var list = JsonConvert.DeserializeObject>>(JsonConvert.SerializeObject(item["orderbook_units"])); - - if(list != null) + var datas = JsonConvert.DeserializeObject>>(resResult.ToString()); + foreach (var item in datas) { - foreach(var order in list) - { - double.TryParse(order["ask_price"]?.ToString(), out var ask_price); - double.TryParse(order["bid_price"]?.ToString(), out var bid_price); - double.TryParse(order["ask_size"]?.ToString(), out var ask_size); - double.TryParse(order["bid_size"]?.ToString(), out var bid_size); + var data = new OrderBook(); + string timestamp = item["timestamp"]?.ToString(); + var dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime(); + var doubleData = Convert.ToDouble(timestamp); - var unit = new Unit(); - unit.BuyPrice = bid_price; - unit.BuySize = bid_size; - unit.SellPrice = ask_price; - unit.SellSize = ask_size; - data.UnitList.Add(unit); + double.TryParse(item["total_ask_size"]?.ToString(), out var total_ask_size); + double.TryParse(item["total_bid_size"]?.ToString(), out var total_bid_size); + + data.CoinFullName = item["market"]?.ToString(); + data.CreateOrderBookDateTime = dateTime.AddMilliseconds(doubleData); + data.TotalBuySize = total_bid_size; + data.TotalSellSize = total_ask_size; + + var list = JsonConvert.DeserializeObject>>(JsonConvert.SerializeObject(item["orderbook_units"])); + + if (list != null) + { + foreach (var order in list) + { + double.TryParse(order["ask_price"]?.ToString(), out var ask_price); + double.TryParse(order["bid_price"]?.ToString(), out var bid_price); + double.TryParse(order["ask_size"]?.ToString(), out var ask_size); + double.TryParse(order["bid_size"]?.ToString(), out var bid_size); + + var unit = new Unit(); + unit.BuyPrice = bid_price; + unit.BuySize = bid_size; + unit.SellPrice = ask_price; + unit.SellSize = ask_size; + data.UnitList.Add(unit); + } } + returnData.Add(data); } - returnData.Add(data); + return returnData; } - return returnData; + catch (Exception e) + { + return returnData; + } + + } /// @@ -244,60 +275,64 @@ namespace Million.WebServices /// public static List GetTickerList(string resResult) { - var returnData = new List(); + try + { + var returnData = new List(); + var datas = JsonConvert.DeserializeObject>>(resResult.ToString()); + var dateTimeData = DateTime.Now; + foreach (var item in datas) + { + double.TryParse(item["opening_price"]?.ToString(), out var opening_price); + double.TryParse(item["high_price"]?.ToString(), out var high_price); + double.TryParse(item["low_price"]?.ToString(), out var low_price); + double.TryParse(item["trade_price"]?.ToString(), out var trade_price); + double.TryParse(item["prev_closing_price"]?.ToString(), out var prev_closing_price); + double.TryParse(item["change_price"]?.ToString(), out var change_price); + double.TryParse(item["change_rate"]?.ToString(), out var change_rate); + double.TryParse(item["signed_change_price"]?.ToString(), out var signed_change_price); + double.TryParse(item["signed_change_rate"]?.ToString(), out var signed_change_rate); + double.TryParse(item["trade_volume"]?.ToString(), out var trade_volume); + double.TryParse(item["acc_trade_price"]?.ToString(), out var acc_trade_price); + double.TryParse(item["acc_trade_price_24h"]?.ToString(), out var acc_trade_price_24h); + double.TryParse(item["acc_trade_volume"]?.ToString(), out var acc_trade_volume); + double.TryParse(item["acc_trade_volume_24h"]?.ToString(), out var acc_trade_volume_24h); + double.TryParse(item["highest_52_week_price"]?.ToString(), out var highest_52_week_price); + double.TryParse(item["lowest_52_week_price"]?.ToString(), out var lowest_52_week_price); - if (resResult.ToString().Contains("Too")) return null; + var dateStr = item["trade_date"]?.ToString() + item["trade_time"]?.ToString(); - var datas = JsonConvert.DeserializeObject>>(resResult.ToString()); - var dateTimeData = DateTime.Now; - foreach (var item in datas) - { - double.TryParse(item["opening_price"]?.ToString(), out var opening_price); - double.TryParse(item["high_price"]?.ToString(), out var high_price); - double.TryParse(item["low_price"]?.ToString(), out var low_price); - double.TryParse(item["trade_price"]?.ToString(), out var trade_price); - double.TryParse(item["prev_closing_price"]?.ToString(), out var prev_closing_price); - double.TryParse(item["change_price"]?.ToString(), out var change_price); - double.TryParse(item["change_rate"]?.ToString(), out var change_rate); - double.TryParse(item["signed_change_price"]?.ToString(), out var signed_change_price); - double.TryParse(item["signed_change_rate"]?.ToString(), out var signed_change_rate); - double.TryParse(item["trade_volume"]?.ToString(), out var trade_volume); - double.TryParse(item["acc_trade_price"]?.ToString(), out var acc_trade_price); - double.TryParse(item["acc_trade_price_24h"]?.ToString(), out var acc_trade_price_24h); - double.TryParse(item["acc_trade_volume"]?.ToString(), out var acc_trade_volume); - double.TryParse(item["acc_trade_volume_24h"]?.ToString(), out var acc_trade_volume_24h); - double.TryParse(item["highest_52_week_price"]?.ToString(), out var highest_52_week_price); - double.TryParse(item["lowest_52_week_price"]?.ToString(), out var lowest_52_week_price); + var data = new Ticker(); + data.CodeFullName = item["market"]?.ToString(); + data.TradeDateTime = DateTime.ParseExact(dateStr, "yyyyMMddHHmmss", null); + data.OpeningPrice = opening_price; + data.HighPrice = high_price; + data.LowPrice = low_price; + data.TradePrice = trade_price; + data.BeforeDayClosePrice = prev_closing_price; + data.TrendType = item["change"]?.ToString(); + data.AbsoluteChangePrice = change_price; + data.AbsoluteChangeRate = change_rate; + data.SignedChangePrice = signed_change_price; + data.SignedChangeRate = signed_change_rate; + data.TradeVolume = trade_volume; + data.AccumulateTradePrice = acc_trade_price; + data.AccumulateTradePrice24 = acc_trade_price_24h; + data.AccumulateTradeVolume = acc_trade_volume; + data.AccumulateTradeVolume24 = acc_trade_volume_24h; + data.HighstPriceOf52Week = highest_52_week_price; + data.HighstPriceDateOf52Week = Convert.ToDateTime(item["highest_52_week_date"]?.ToString()).ToUniversalTime(); + data.LowstPriceOf52Week = lowest_52_week_price; + data.LowstPriceDateOf52Week = Convert.ToDateTime(item["lowest_52_week_date"]?.ToString()).ToUniversalTime(); + data.DateTime = dateTimeData; + returnData.Add(data); + } - var dateStr = item["trade_date"]?.ToString() + item["trade_time"]?.ToString(); - - var data = new Ticker(); - data.CodeFullName = item["market"]?.ToString(); - data.TradeDateTime = DateTime.ParseExact(dateStr, "yyyyMMddHHmmss", null); - data.OpeningPrice = opening_price; - data.HighPrice = high_price; - data.LowPrice = low_price; - data.TradePrice = trade_price; - data.BeforeDayClosePrice = prev_closing_price; - data.TrendType = item["change"]?.ToString(); - data.AbsoluteChangePrice = change_price; - data.AbsoluteChangeRate = change_rate; - data.SignedChangePrice = signed_change_price; - data.SignedChangeRate = signed_change_rate; - data.TradeVolume = trade_volume; - data.AccumulateTradePrice = acc_trade_price; - data.AccumulateTradePrice24 = acc_trade_price_24h; - data.AccumulateTradeVolume = acc_trade_volume; - data.AccumulateTradeVolume24 = acc_trade_volume_24h; - data.HighstPriceOf52Week = highest_52_week_price; - data.HighstPriceDateOf52Week = Convert.ToDateTime(item["highest_52_week_date"]?.ToString()).ToUniversalTime(); - data.LowstPriceOf52Week = lowest_52_week_price; - data.LowstPriceDateOf52Week = Convert.ToDateTime(item["lowest_52_week_date"]?.ToString()).ToUniversalTime(); - data.DateTime = dateTimeData; - returnData.Add(data); + return returnData; + } + catch (Exception e) + { + return new List(); } - - return returnData; } /// @@ -305,39 +340,46 @@ namespace Million.WebServices /// public static Order TryOrder(string resResult) { - var returnData = new Order(); + try + { + var returnData = new Order(); - var data = JsonConvert.DeserializeObject>(resResult.ToString()); - double.TryParse(data["price"]?.ToString(), out var price); - double.TryParse(data["volume"]?.ToString(), out var volume); - double.TryParse(data["remaining_volume"]?.ToString(), out var remaining_volume); - double.TryParse(data["reserved_fee"]?.ToString(), out var reserved_fee); - double.TryParse(data["remaining_fee"]?.ToString(), out var remaining_fee); - double.TryParse(data["paid_fee"]?.ToString(), out var paid_fee); - double.TryParse(data["locked"]?.ToString(), out var lockedCost); - double.TryParse(data["executed_volume"]?.ToString(), out var executed_volume); - double.TryParse(data["avg_price"]?.ToString(), out var avg_price); + var data = JsonConvert.DeserializeObject>(resResult.ToString()); + double.TryParse(data["price"]?.ToString(), out var price); + double.TryParse(data["volume"]?.ToString(), out var volume); + double.TryParse(data["remaining_volume"]?.ToString(), out var remaining_volume); + double.TryParse(data["reserved_fee"]?.ToString(), out var reserved_fee); + double.TryParse(data["remaining_fee"]?.ToString(), out var remaining_fee); + double.TryParse(data["paid_fee"]?.ToString(), out var paid_fee); + double.TryParse(data["locked"]?.ToString(), out var lockedCost); + double.TryParse(data["executed_volume"]?.ToString(), out var executed_volume); + double.TryParse(data["avg_price"]?.ToString(), out var avg_price); - int.TryParse(data["trades_count"]?.ToString(), out var trades_count); + int.TryParse(data["trades_count"]?.ToString(), out var trades_count); - returnData.Uuid = data["uuid"]?.ToString(); - returnData.OrderType = data["ord_type"]?.ToString(); - returnData.OrderPrice = price; - returnData.AveragePrice = avg_price; - returnData.Side = data["side"]?.ToString(); - returnData.State = data["state"]?.ToString(); - returnData.CoinFullName = data["market"]?.ToString(); - returnData.CreateOrderTime = Convert.ToDateTime(data["created_at"]?.ToString()); - returnData.Volume = volume; - returnData.RemainingVolume = remaining_volume; - returnData.RemainingFee = remaining_fee; - returnData.ReservedFee = reserved_fee; - returnData.PaidFee = paid_fee; - returnData.LockedCost = lockedCost; - returnData.ExecutedVolume = executed_volume; - returnData.TradeCount = trades_count; + returnData.Uuid = data["uuid"]?.ToString(); + returnData.OrderType = data["ord_type"]?.ToString(); + returnData.OrderPrice = price; + returnData.AveragePrice = avg_price; + returnData.Side = data["side"]?.ToString(); + returnData.State = data["state"]?.ToString(); + returnData.CoinFullName = data["market"]?.ToString(); + returnData.CreateOrderTime = Convert.ToDateTime(data["created_at"]?.ToString()); + returnData.Volume = volume; + returnData.RemainingVolume = remaining_volume; + returnData.RemainingFee = remaining_fee; + returnData.ReservedFee = reserved_fee; + returnData.PaidFee = paid_fee; + returnData.LockedCost = lockedCost; + returnData.ExecutedVolume = executed_volume; + returnData.TradeCount = trades_count; - return returnData; + return returnData; + } + catch (Exception e) + { + return new Order(); + } } /// @@ -346,43 +388,50 @@ namespace Million.WebServices /// public static List GetOrderListInformation(string resResult) { - var returnData = new List(); - - var datas = JsonConvert.DeserializeObject>>(resResult.ToString()); - - foreach(var item in datas) + try { + var returnData = new List(); - double.TryParse(item["price"]?.ToString(), out var price); - double.TryParse(item["volume"]?.ToString(), out var volume); - double.TryParse(item["remaining_volume"]?.ToString(), out var remaining_volume); - double.TryParse(item["reserved_fee"]?.ToString(), out var reserved_fee); - double.TryParse(item["remaining_fee"]?.ToString(), out var remaining_fee); - double.TryParse(item["paid_fee"]?.ToString(), out var paid_fee); - double.TryParse(item["locked"]?.ToString(), out var lockedCost); - double.TryParse(item["executed_volume"]?.ToString(), out var executed_volume); - int.TryParse(item["trades_count"]?.ToString(), out var trades_count); + var datas = JsonConvert.DeserializeObject>>(resResult.ToString()); - var data = new Order(); - data.Uuid = item["uuid"]?.ToString(); - data.Side = item["side"]?.ToString(); - data.OrderType = item["ord_type"]?.ToString(); - data.OrderPrice = price; - data.State = item["state"]?.ToString(); - data.CoinFullName = item["market"]?.ToString(); - data.CreateOrderTime = Convert.ToDateTime(item["created_at"]?.ToString()); - data.Volume = volume; - data.RemainingVolume = remaining_volume; - data.RemainingFee = remaining_fee; - data.ReservedFee = reserved_fee; - data.PaidFee = paid_fee; - data.LockedCost = lockedCost; - data.ExecutedVolume = executed_volume; - data.TradeCount = trades_count; - returnData.Add(data); + foreach (var item in datas) + { + + double.TryParse(item["price"]?.ToString(), out var price); + double.TryParse(item["volume"]?.ToString(), out var volume); + double.TryParse(item["remaining_volume"]?.ToString(), out var remaining_volume); + double.TryParse(item["reserved_fee"]?.ToString(), out var reserved_fee); + double.TryParse(item["remaining_fee"]?.ToString(), out var remaining_fee); + double.TryParse(item["paid_fee"]?.ToString(), out var paid_fee); + double.TryParse(item["locked"]?.ToString(), out var lockedCost); + double.TryParse(item["executed_volume"]?.ToString(), out var executed_volume); + int.TryParse(item["trades_count"]?.ToString(), out var trades_count); + + var data = new Order(); + data.Uuid = item["uuid"]?.ToString(); + data.Side = item["side"]?.ToString(); + data.OrderType = item["ord_type"]?.ToString(); + data.OrderPrice = price; + data.State = item["state"]?.ToString(); + data.CoinFullName = item["market"]?.ToString(); + data.CreateOrderTime = Convert.ToDateTime(item["created_at"]?.ToString()); + data.Volume = volume; + data.RemainingVolume = remaining_volume; + data.RemainingFee = remaining_fee; + data.ReservedFee = reserved_fee; + data.PaidFee = paid_fee; + data.LockedCost = lockedCost; + data.ExecutedVolume = executed_volume; + data.TradeCount = trades_count; + returnData.Add(data); + } + + return returnData; + } + catch (Exception e) + { + return new List(); } - - return returnData; } /// @@ -390,73 +439,80 @@ namespace Million.WebServices /// /// /// - public static OrderableInformation GetOrderableInformation(string resResult) + public static OrderableInformation GetOrderableInformation(string resResult) { - var returnData = new OrderableInformation(); - var data = JsonConvert.DeserializeObject>(resResult.ToString()); + try + { + var returnData = new OrderableInformation(); + var data = JsonConvert.DeserializeObject>(resResult.ToString()); - double.TryParse(data["bid_fee"]?.ToString(), out var buyFeeRate); - returnData.BuyFeeRate = buyFeeRate; + double.TryParse(data["bid_fee"]?.ToString(), out var buyFeeRate); + returnData.BuyFeeRate = buyFeeRate; - double.TryParse(data["ask_fee"]?.ToString(), out var sellFeeRate); - returnData.SellFeeRate = sellFeeRate; + double.TryParse(data["ask_fee"]?.ToString(), out var sellFeeRate); + returnData.SellFeeRate = sellFeeRate; - var market = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(data["market"]?.ToString())); - var buyAccount = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(data["bid_account"]?.ToString())); - var sellAccount = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(data["ask_account"]?.ToString())); + var market = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(data["market"]?.ToString())); + var buyAccount = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(data["bid_account"]?.ToString())); + var sellAccount = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(data["ask_account"]?.ToString())); - //market - returnData.Market.CoinFullName = market["id"]?.ToString(); - returnData.Market.Name = market["name"]?.ToString(); - returnData.Market.OrderTypes = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(market["order_types"]?.ToString())); - returnData.Market.OrderSides = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(market["order_sides"]?.ToString())); + //market + returnData.Market.CoinFullName = market["id"]?.ToString(); + returnData.Market.Name = market["name"]?.ToString(); + returnData.Market.OrderTypes = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(market["order_types"]?.ToString())); + returnData.Market.OrderSides = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(market["order_sides"]?.ToString())); - var buyRestrictions = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(market["bid"]?.ToString())); + var buyRestrictions = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(market["bid"]?.ToString())); - returnData.Market.BuyRestrictions.Currency = buyRestrictions["currency"]?.ToString(); - returnData.Market.BuyRestrictions.PriceUnit = buyRestrictions["price_unit"]?.ToString(); + returnData.Market.BuyRestrictions.Currency = buyRestrictions["currency"]?.ToString(); + returnData.Market.BuyRestrictions.PriceUnit = buyRestrictions["price_unit"]?.ToString(); - double.TryParse(buyRestrictions["min_total"]?.ToString(), out var buyMintotal); - returnData.Market.BuyRestrictions.MinimumAmount = buyMintotal; + double.TryParse(buyRestrictions["min_total"]?.ToString(), out var buyMintotal); + returnData.Market.BuyRestrictions.MinimumAmount = buyMintotal; - var sellRestrictions = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(market["ask"]?.ToString())); + var sellRestrictions = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(market["ask"]?.ToString())); - returnData.Market.SellRestrictions.Currency = sellRestrictions["currency"]?.ToString(); - returnData.Market.SellRestrictions.PriceUnit = sellRestrictions["price_unit"]?.ToString(); + returnData.Market.SellRestrictions.Currency = sellRestrictions["currency"]?.ToString(); + returnData.Market.SellRestrictions.PriceUnit = sellRestrictions["price_unit"]?.ToString(); - double.TryParse(sellRestrictions["min_total"]?.ToString(), out var sellMintotal); - returnData.Market.SellRestrictions.MinimumAmount = sellMintotal; - returnData.Market.State = market["state"]?.ToString(); + double.TryParse(sellRestrictions["min_total"]?.ToString(), out var sellMintotal); + returnData.Market.SellRestrictions.MinimumAmount = sellMintotal; + returnData.Market.State = market["state"]?.ToString(); - //buy Account - returnData.BuyAccount.Currency = buyAccount["currency"]?.ToString(); - returnData.BuyAccount.UnitCurrency = buyAccount["unit_currency"]?.ToString(); + //buy Account + returnData.BuyAccount.Currency = buyAccount["currency"]?.ToString(); + returnData.BuyAccount.UnitCurrency = buyAccount["unit_currency"]?.ToString(); - double.TryParse(buyAccount["balance"]?.ToString(), out var balance); - double.TryParse(buyAccount["locked"]?.ToString(), out var locked); - double.TryParse(buyAccount["avg_buy_price"]?.ToString(), out var avgBuyPrice); - bool.TryParse(buyAccount["avg_buy_price_modified"]?.ToString(), out var avgBuyPriceFlag); + double.TryParse(buyAccount["balance"]?.ToString(), out var balance); + double.TryParse(buyAccount["locked"]?.ToString(), out var locked); + double.TryParse(buyAccount["avg_buy_price"]?.ToString(), out var avgBuyPrice); + bool.TryParse(buyAccount["avg_buy_price_modified"]?.ToString(), out var avgBuyPriceFlag); - returnData.BuyAccount.Balance = balance; - returnData.BuyAccount.LockedDuringOrder = locked; - returnData.BuyAccount.AvgBuyPrice = avgBuyPrice; - returnData.BuyAccount.AvgBuyPriceFlag = avgBuyPriceFlag; + returnData.BuyAccount.Balance = balance; + returnData.BuyAccount.LockedDuringOrder = locked; + returnData.BuyAccount.AvgBuyPrice = avgBuyPrice; + returnData.BuyAccount.AvgBuyPriceFlag = avgBuyPriceFlag; - //sell Account - returnData.SellAccount.Currency = sellAccount["currency"]?.ToString(); - returnData.SellAccount.UnitCurrency = sellAccount["unit_currency"]?.ToString(); + //sell Account + returnData.SellAccount.Currency = sellAccount["currency"]?.ToString(); + returnData.SellAccount.UnitCurrency = sellAccount["unit_currency"]?.ToString(); - double.TryParse(sellAccount["balance"]?.ToString(), out balance); - double.TryParse(sellAccount["locked"]?.ToString(), out locked); - double.TryParse(sellAccount["avg_buy_price"]?.ToString(), out avgBuyPrice); - bool.TryParse(sellAccount["avg_buy_price_modified"]?.ToString(), out avgBuyPriceFlag); + double.TryParse(sellAccount["balance"]?.ToString(), out balance); + double.TryParse(sellAccount["locked"]?.ToString(), out locked); + double.TryParse(sellAccount["avg_buy_price"]?.ToString(), out avgBuyPrice); + bool.TryParse(sellAccount["avg_buy_price_modified"]?.ToString(), out avgBuyPriceFlag); - returnData.SellAccount.Balance = balance; - returnData.SellAccount.LockedDuringOrder = locked; - returnData.SellAccount.AvgBuyPrice = avgBuyPrice; - returnData.SellAccount.AvgBuyPriceFlag = avgBuyPriceFlag; + returnData.SellAccount.Balance = balance; + returnData.SellAccount.LockedDuringOrder = locked; + returnData.SellAccount.AvgBuyPrice = avgBuyPrice; + returnData.SellAccount.AvgBuyPriceFlag = avgBuyPriceFlag; - return returnData; + return returnData; + } + catch (Exception e) + { + return new OrderableInformation(); + } } /// @@ -466,26 +522,33 @@ namespace Million.WebServices /// public static List GetAccounts(string resResult) { - var objectList = JsonConvert.DeserializeObject>>(resResult.ToString()); - var accountList = new List(); - foreach(var item in objectList) + try { - double.TryParse(item["balance"]?.ToString(), out var balance); - double.TryParse(item["locked"]?.ToString(), out var locked); - double.TryParse(item["avg_buy_price"]?.ToString(), out var avg_buy_price); - bool.TryParse(item["avg_buy_price_modified"]?.ToString(), out var avg_buy_price_modified); + var objectList = JsonConvert.DeserializeObject>>(resResult.ToString()); + var accountList = new List(); + foreach (var item in objectList) + { + double.TryParse(item["balance"]?.ToString(), out var balance); + double.TryParse(item["locked"]?.ToString(), out var locked); + double.TryParse(item["avg_buy_price"]?.ToString(), out var avg_buy_price); + bool.TryParse(item["avg_buy_price_modified"]?.ToString(), out var avg_buy_price_modified); - var account = new Account(); - account.Currency = item["currency"]?.ToString(); - account.UnitCurrency = item["unit_currency"]?.ToString(); - account.Balance = balance; - account.Locked = locked; - account.AvgBuyPrice = avg_buy_price; - account.AvgBuyPriceFlag = avg_buy_price_modified; - accountList.Add(account); + var account = new Account(); + account.Currency = item["currency"]?.ToString(); + account.UnitCurrency = item["unit_currency"]?.ToString(); + account.Balance = balance; + account.Locked = locked; + account.AvgBuyPrice = avg_buy_price; + account.AvgBuyPriceFlag = avg_buy_price_modified; + accountList.Add(account); + } + return accountList; + } + catch (Exception e) + { + return new List(); } - return accountList; } /// @@ -508,8 +571,8 @@ namespace Million.WebServices double.TryParse(item["high_price"]?.ToString(), out var highValue); double.TryParse(item["low_price"]?.ToString(), out var lowValue); //이거는 확인 필요 - double.TryParse(item["candle_acc_trade_price"]?.ToString(), out var moneyVolume); - + double.TryParse(item["candle_acc_trade_price"]?.ToString(), out var moneyVolume); + candleList.Add(new CandleData() { DateTime = Convert.ToDateTime(item["candle_date_time_kst"]?.ToString()),