Skip to content

Commit

Permalink
Merge pull request #79 from planetarium/release/4
Browse files Browse the repository at this point in the history
Fix deserialize item
  • Loading branch information
ipdae authored Oct 26, 2023
2 parents c2febce + bed6517 commit 4dca432
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions MarketService/RpcClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ public async Task InsertOrders(byte[] hashBytes, List<Guid> orderIds, List<Guid>
.ForAll(order =>
{
var orderDigest = orderDigestList.First(o => o.OrderId == order.OrderId);
var item = items.OfType<ITradableItem>().First(i => i.TradableId == order.TradableId);
var item = items.First(i => i.TradableId == order.TradableId);
var itemProduct = new ItemProductModel
{
ProductId = order.OrderId,
Expand Down Expand Up @@ -571,21 +571,23 @@ await Parallel.ForEachAsync(chunks, _parallelOptions, async (chunk, token) =>
return orderBag.ToList();
}

public async Task<List<ItemBase>> GetItems(IEnumerable<Guid> tradableIds, byte[] hashBytes)
public async Task<List<ITradableItem>> GetItems(IEnumerable<Guid> tradableIds, byte[] hashBytes)
{
var itemAddressList = tradableIds.Select(i => Addresses.GetItemAddress(i).ToByteArray()).ToList();
var chunks = itemAddressList
.Select((x, i) => new {Index = i, Value = x})
.GroupBy(x => x.Index / 1000)
.Select(x => x.Select(v => v.Value).ToList())
.ToList();
var itemBag = new ConcurrentBag<ItemBase>();
var itemBag = new ConcurrentBag<ITradableItem>();
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);
}
});
Expand Down

0 comments on commit 4dca432

Please sign in to comment.