public async Task <BandMember> AddMember(BandMember member) { var band = await dbContext .Set <Entities.Band>() .FindAsync(member.Band.Id); var bandit = await dbContext .Set <Entities.Bandit>() .FindAsync(member.Bandit.Id); var dbMember = new Entities.BandMember { Band = band, Bandit = bandit, Scoring = new Entities.Score() }; await dbContext .Set <Entities.BandMember>() .AddAsync(dbMember); await dbContext.SaveChangesAsync(); return(member); }
public async Task <Band> Add(Band band) { var dbBandit = await dbContext .Set <Entities.Bandit>() .FindAsync(band.Boss.Bandit.Id); var dbBand = new Entities.Band { Name = band.Name }; var dbBandMember = new Entities.BandMember { Band = dbBand, Bandit = dbBandit, Scoring = new Entities.Score() }; using (var ts = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { await dbContext .Set <Entities.Band>() .AddAsync(dbBand); await dbContext.SaveChangesAsync(); dbBand.Boss = dbBandMember; await dbContext .Set <Entities.BandMember>() .AddAsync(dbBandMember); await dbContext.SaveChangesAsync(); ts.Complete(); } var boss = band.Boss.Bandit; return(Band.Create(dbBand.Id, band.Name, boss, new [] { boss })); }