From bed6517646e0e5b8ba44700406f714b9cf389782 Mon Sep 17 00:00:00 2001 From: Yang Chun Ung Date: Wed, 27 Sep 2023 12:02:39 +0900 Subject: [PATCH] Fix deserialize item --- MarketService/RpcClient.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/MarketService/RpcClient.cs b/MarketService/RpcClient.cs index df22086..a02b40a 100644 --- a/MarketService/RpcClient.cs +++ b/MarketService/RpcClient.cs @@ -326,7 +326,7 @@ public async Task InsertOrders(byte[] hashBytes, List orderIds, List .ForAll(order => { var orderDigest = orderDigestList.First(o => o.OrderId == order.OrderId); - var item = items.OfType().First(i => i.TradableId == order.TradableId); + var item = items.First(i => i.TradableId == order.TradableId); var itemProduct = new ItemProductModel { ProductId = order.OrderId, @@ -571,7 +571,7 @@ await Parallel.ForEachAsync(chunks, _parallelOptions, async (chunk, token) => return orderBag.ToList(); } - public async Task> GetItems(IEnumerable tradableIds, byte[] hashBytes) + public async Task> GetItems(IEnumerable tradableIds, byte[] hashBytes) { var itemAddressList = tradableIds.Select(i => Addresses.GetItemAddress(i).ToByteArray()).ToList(); var chunks = itemAddressList @@ -579,13 +579,15 @@ public async Task> GetItems(IEnumerable tradableIds, byte[] .GroupBy(x => x.Index / 1000) .Select(x => x.Select(v => v.Value).ToList()) .ToList(); - var itemBag = new ConcurrentBag(); + var itemBag = new ConcurrentBag(); await Parallel.ForEachAsync(chunks, _parallelOptions, async (chunk, token) => { var itemResult = await GetStates(chunk, hashBytes); foreach (var kv in itemResult) { - var item = ItemFactory.Deserialize((Dictionary) kv.Value); + var item = (ITradableItem)ItemFactory.Deserialize((Dictionary) kv.Value); + // Avoid Exception when deserialize tradableId + var _ = item.TradableId; itemBag.Add(item); } });