コード例 #1
0
        public async Task <Types.AddReservationPayload> AddReservation([Service] YogaDbContext context,
                                                                       Types.AddReservationInput input)
        {
            var eId   = int.Parse(input.eventId);
            var accId = Guid.Parse("d4c96458-b161-11ea-9c62-a759c513c356");             //this will be authenticated users ID
            var acc   = await context.Account.FirstOrDefaultAsync(a => a.Id == accId);

            var @event = await context.Event.FirstOrDefaultAsync(e => e.Id == eId);

            var newReservation = new Reservation
            {
                Account   = acc,
                SpotCount = input.spotCount,
                Event     = @event,
            };

            context.Reservation.Add(newReservation);
            var payload = new Types.AddReservationPayload
            {
                account   = _mapper.Map <Types.Account>(acc),
                @event    = _mapper.Map <Types.Event>(@event),
                spotCount = input.spotCount
            };

            await context.SaveChangesAsync();

            return(payload);
        }
コード例 #2
0
        public async Task <Types.Event> GetEvent([Parent] CustomReservation reservation,
                                                 [Service] YogaDbContext dbContext)
        {
            var @event =
                await dbContext.Event.FirstOrDefaultAsync(r => r.Id == reservation.eventId);

            return(_mapper.Map <Types.Event>(@event));
        }
コード例 #3
0
        public async Task <Types.Account> GetAccount([Parent] CustomReservation reservation,
                                                     [Service] YogaDbContext dbContext)
        {
            var account =
                await dbContext.Account.FirstOrDefaultAsync(r => r.Id.ToString() == reservation.accountId);

            return(_mapper.Map <Types.Account>(account));
        }
コード例 #4
0
        public async Task <IReadOnlyList <CustomReservation> > GetReservations([Parent] Types.Account account,
                                                                               [Service] YogaDbContext dbContext)
        {
            var reservations =
                await dbContext.Reservation.Where(r => r.AccountId.ToString() == account.id).ToListAsync();

            return(_mapper.Map <List <CustomReservation> >(reservations));
        }
コード例 #5
0
        public async Task <Types.Node> GetNode([Service] YogaDbContext context, string id)
        {
            var type = FromGlobalId(id);

            throw new NotImplementedException("this is not viable code");
            //this needs to be here because graphql-code-gen doesnt create interface types in c#

            //			switch (type.Type)
            //			{
            //				case ACCOUNT:
            //					return await GetAccount(context, type.Id);
            //				case EVENT:
            //					return await GetEvent(context, type.Id);
            //				default:
            //					return new Types.Node();
            //			}
        }
コード例 #6
0
        public async Task <Types.AddAccountPayload> AddAccount([Service] YogaDbContext dbContext,
                                                               Types.AddAccountInput input)
        {
            var account = new Account
            {
                Email              = input.email,
                Name               = input.name,
                Surname            = input.surname,
                IsAdmin            = false,
                ReceiveNewsletters = false,
                CreatedAt          = DateTime.Now,
                AuthId             = Guid.NewGuid().ToString()
            };

            dbContext.Account.Add(account);

            await dbContext.SaveChangesAsync();

            return(new Types.AddAccountPayload
            {
                account = _mapper.Map <Types.Account>(account),
                clientMutationId = "test"
            });
        }
コード例 #7
0
 public AccountController(YogaDbContext context)
 {
     _context = context;
 }
コード例 #8
0
        public async Task <List <Types.Event> > GetEvents([Service] YogaDbContext context)
        {
            var events = await context.Event.ToListAsync();

            return(_mapper.Map <List <Types.Event> >(events));
        }
コード例 #9
0
        public async Task <Types.Event> GetEvent([Service] YogaDbContext dbContext, string id)
        {
            var events = await dbContext.Event.FirstOrDefaultAsync(e => e.Id.ToString() == id);

            return(_mapper.Map <Types.Event>(events));
        }
コード例 #10
0
        public async Task <Types.Account> GetAccount([Service] YogaDbContext dbContext, string id)
        {
            var account = await dbContext.Account.FirstOrDefaultAsync(a => a.Id.ToString() == id);

            return(_mapper.Map <Types.Account>(account));
        }
コード例 #11
0
        public async Task <IReadOnlyList <Types.Account> > GetAccounts([Service] YogaDbContext dbContext)
        {
            var accounts = await dbContext.Account.ToListAsync();

            return(_mapper.Map <List <Types.Account> >(accounts));
        }