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 <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);
        }
Ejemplo n.º 3
0
        public async Task <IQueryable <Bandit> > Get()
        {
            var dbBandits = dbContext
                            .Set <Entities.Bandit>()
                            .Include(b => b.Scoring);

            await dbBandits.LoadAsync();

            var bandits = dbBandits
                          .AsEnumerable()
                          .Select(b => {
                var bandit = Bandit.Create(b.Id, b.Name, b.Email);
                var score  = b.Scoring.ToModel();

                bandit.Scoring.Add(score);
                return(bandit);
            })
                          .AsQueryable();


            return(bandits);
        }
Ejemplo n.º 4
0
        public async Task <IQueryable <Band> > Get()
        {
            var dbBands = dbContext
                          .Set <Entities.Band>()
                          .Include(b => b.Boss)
                          .ThenInclude(bm => bm.Bandit)
                          .Include(b => b.Rounds)
                          .ThenInclude(r => r.Sheriff)
                          .ThenInclude(rm => rm.Member)
                          .ThenInclude(bm => bm.Bandit);

            await dbBands.LoadAsync();

            var bands = dbBands
                        .AsEnumerable()
                        .Select(b => {
                var boss = Bandit.Create(b.Boss.Bandit.Id, b.Boss.Bandit.Name, b.Boss.Bandit.Email);
                var band = Band.Create(b.Id, b.Name, boss);

                foreach (var dbRound in b.Rounds)
                {
                    var dbBandit = dbRound.Sheriff.Member.Bandit;
                    var bandit   = Bandit.Create(dbBandit.Id, dbBandit.Name, dbBandit.Email);

                    var sheriff = BandMember.From(bandit, band);
                    var round   = Round.Create(dbRound.Id, dbRound.Name, dbRound.Place, dbRound.DateTime, sheriff, Enumerable.Empty <BandMember>());

                    band.Rounds.Add(round);
                }

                return(band);
            })
                        .AsQueryable();

            return(bands);
        }
Ejemplo n.º 5
0
        public async Task <Round> Get(int id)
        {
            var dbRound = await dbContext
                          .Set <Entities.Round>()
                          .Include(r => r.Sheriff)
                          .ThenInclude(rm => rm.Scoring)
                          .Include(r => r.Sheriff)
                          .ThenInclude(rm => rm.Member)
                          .ThenInclude(bm => bm.Band)
                          .ThenInclude(b => b.Boss)
                          .ThenInclude(b => b.Bandit)
                          .Include(r => r.Sheriff)
                          .ThenInclude(rm => rm.Member)
                          .ThenInclude(bm => bm.Bandit)
                          .Include(r => r.Members)
                          .ThenInclude(rm => rm.Scoring)
                          .Include(r => r.Members)
                          .ThenInclude(rm => rm.Member)
                          .ThenInclude(bm => bm.Bandit)
                          .FirstOrDefaultAsync(r => r.Id == id);

            if (dbRound == null)
            {
                return(null);
            }

            var dbBoss = dbRound.Sheriff.Member.Band.Boss.Bandit;
            var boss   = Bandit.Create(dbBoss.Id, dbBoss.Name, dbBoss.Email);

            var dbBand = dbRound.Sheriff.Member.Band;
            var band   = Band.Create(dbBand.Id, dbBand.Name, boss);

            var dbSheriff = dbRound.Sheriff.Member.Bandit;
            var sheriff   = Bandit.Create(dbSheriff.Id, dbSheriff.Name, dbSheriff.Email);

            var sheriffMember = BandMember.From(sheriff, band);

            band.Members.Add(sheriffMember);

            var round = Round.Create(
                dbRound.Id,
                dbRound.Name,
                dbRound.Place,
                dbRound.DateTime,
                sheriffMember,
                Enumerable.Empty <BandMember>()
                );

            var sheriffScoring = dbRound.Sheriff.Scoring.ToModel();

            round.Sheriff.Scoring.Add(sheriffScoring);

            foreach (var rm in dbRound.Members)
            {
                if (rm.Member.Bandit.Id == round.Sheriff.Member.Bandit.Id)
                {
                    round.Members.Add(round.Sheriff);
                    continue;
                }

                var dbBandit = rm.Member.Bandit;
                var bandit   = Bandit.Create(dbBandit.Id, dbBandit.Name, dbBandit.Email);

                var bandMember  = BandMember.From(bandit, band);
                var roundMember = RoundMember.From(bandMember, round);

                var memberScoring = rm.Scoring.ToModel();
                roundMember.Scoring.Add(memberScoring);

                round.Members.Add(roundMember);
            }

            return(round);
        }