public async Task <Invitation> Add(Invitation invitation) { var dbInvitation = new Entities.Invitation { GuestId = invitation.Guest.Id, BandId = invitation.Band.Id, HandlerId = invitation.Handler.Id }; await dbContext .Set <Entities.Invitation>() .AddAsync(dbInvitation); await dbContext.SaveChangesAsync(); return(Invitation.Create(dbInvitation.Id, invitation.Guest, invitation.Band, invitation.Handler)); }
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 })); }
public async Task <Notification> Add(Notification notification) { var bandit = await dbContext .Set <Entities.Bandit>() .FindAsync(notification.Bandit.Id); var dbNotif = new Entities.Notification { Bandit = bandit, Title = notification.Title, Body = notification.Body }; await dbContext .Set <Entities.Notification>() .AddAsync(dbNotif); await dbContext.SaveChangesAsync(); return(notification); }
public async Task <Bandit> Add(Bandit bandit) { var dbBandit = new Entities.Bandit { Name = bandit.Name, Email = bandit.Email.Address, Scoring = new Entities.Score() }; await dbContext .Set <Entities.Bandit>() .AddAsync(dbBandit); await dbContext.SaveChangesAsync(); return(Bandit.Create(dbBandit.Id, dbBandit.Name, dbBandit.Email)); }
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) )); }