private async Task PersistSharesCoreAsync(IList <Share> shares) { await cf.RunTx(async (con, tx) => { // Insert shares var mapped = shares.Select(mapper.Map <Persistence.Model.Share>).ToArray(); await shareRepo.BatchInsertAsync(con, tx, mapped, CancellationToken.None); // Insert blocks foreach (var share in shares) { if (!share.IsBlockCandidate) { continue; } var blockEntity = mapper.Map <Block>(share); blockEntity.Status = BlockStatus.Pending; await blockRepo.InsertAsync(con, tx, blockEntity); if (pools.TryGetValue(share.PoolId, out var poolConfig)) { messageBus.NotifyBlockFound(share.PoolId, blockEntity, poolConfig.Template); } else { logger.Warn(() => $"Block found for unknown pool {share.PoolId}"); } } }); }
private async Task PersistSharesCoreAsync(IList <Share> shares) { await cf.RunTx(async (con, tx) => { // Insert shares var mapped = shares.Select(mapper.Map <Persistence.Model.Share>).ToArray(); await shareRepo.BatchInsertAsync(con, tx, mapped); // Insert blocks foreach (var share in shares) { if (!share.IsBlockCandidate) { continue; } var blockEntity = mapper.Map <Block>(share); blockEntity.Status = BlockStatus.Pending; await blockRepo.InsertAsync(con, tx, blockEntity); messageBus.NotifyBlockFound(share.PoolId, blockEntity, pools[share.PoolId].Template); } }); }