private Guid AdjustRound(Entities.Round round, GameActionData actionData, Guid walletTxId) { return(round.Adjust( actionData.Amount, actionData.Description, walletTxId, actionData.ExternalTransactionId, actionData.ExternalBetId, actionData.TransactionReferenceId, actionData.BatchId)); }
private Guid CancelRound(Entities.Round round, decimal amount, GameActionData actionData, Guid walletTxId) { return(round.Cancel( amount, actionData.Description, walletTxId, actionData.ExternalTransactionId, actionData.ExternalBetId, actionData.TransactionReferenceId, actionData.BatchId)); }
public async Task <Round> Add(Round round) { var dbRound = new Entities.Round { Name = round.Name, Place = round.Place, DateTime = round.DateTime, Members = new List <Entities.RoundMember>() }; var bandId = round.Sheriff.Member.Band.Id; var dbBand = await dbContext .Set <Entities.Band>() .Include(b => b.Members) .ThenInclude(bm => bm.Bandit) .FirstOrDefaultAsync(b => b.Id == bandId); var sheriffId = round.Sheriff.Member.Bandit.Id; var sheriff = dbBand.Members .FirstOrDefault(bm => bm.Bandit.Id == sheriffId); var sheriffMember = new Entities.RoundMember { Member = sheriff, Round = dbRound, Scoring = new Entities.Score() }; foreach (var member in round.Members) { var memberId = member.Member.Bandit.Id; var dbMember = dbBand.Members .FirstOrDefault(bm => bm.Bandit.Id == memberId); var roundMember = new Entities.RoundMember { Member = dbMember, Round = dbRound, Scoring = new Entities.Score() }; dbRound.Members.Add(roundMember); } using (var ts = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { await dbContext .Set <Entities.Round>() .AddAsync(dbRound); dbRound.Members.ForEach(async member => { await dbContext .Set <Entities.RoundMember>() .AddAsync(member); }); await dbContext.SaveChangesAsync(); dbRound.Sheriff = sheriffMember; dbBand.Rounds.Add(dbRound); await dbContext .Set <Entities.RoundMember>() .AddAsync(sheriffMember); await dbContext.SaveChangesAsync(); ts.Complete(); } return(Round.Create( dbRound.Id, round.Name, round.Place, round.DateTime, round.Sheriff.Member, round.Members.Select(m => m.Member) )); }