Esempio n. 1
0
        public async Task <ActionResult <int> > SaveFishRecord(FishRecordSaveRequest request)
        {
            await using FishingRecorderContext context = new FishingRecorderContext();

            var user = await GetUserFromToken(request.Token);

            if (user == null)
            {
                user = await SaveNewUserFromToken(request.Token);
            }

            var newRecord = new FishRecord()
            {
                UserId       = user.UserId,
                FishType     = request.FishType,
                Lat          = request.Lat,
                Lon          = request.Lon,
                LengthInches = request.LengthInches,
                WaterTemp    = request.WaterTemp,
                Date         = DateTime.UtcNow
            };

            await context.FishRecord.AddAsync(newRecord);

            await context.SaveChangesAsync();

            return(newRecord.FishRecordId);
        }
Esempio n. 2
0
        public async Task <ActionResult <List <FishRecordResponse> > > GetAllRecords()
        {
            await using FishingRecorderContext context = new FishingRecorderContext();

            return(await context.FishRecord
                   .Select(r => new FishRecordResponse(r))
                   .ToListAsync());
        }
Esempio n. 3
0
        public async Task <ActionResult <List <User> > > GetAllUsers()
        {
            await using FishingRecorderContext context = new FishingRecorderContext();

            return(await context.User
                   .Include(u => u.FishRecord)
                   .ToListAsync());
        }
Esempio n. 4
0
        // helper methods
        public async Task <User> GetUserFromToken(string requestToken)
        {
            await using FishingRecorderContext context = new FishingRecorderContext();

            var handler = new JwtSecurityTokenHandler();
            var token   = handler.ReadJwtToken(requestToken);
            var subject = token.Subject;

            var user = await context.User
                       .Where(u => u.Auth0Id == subject)
                       .FirstOrDefaultAsync();

            return(user);
        }
Esempio n. 5
0
        public async Task <User> SaveNewUserFromToken(string requestToken)
        {
            await using FishingRecorderContext context = new FishingRecorderContext();

            var handler = new JwtSecurityTokenHandler();
            var token   = handler.ReadJwtToken(requestToken);
            var subject = token.Subject;

            var newUser = await context.User
                          .AddAsync(new User { Auth0Id = subject });

            await context.SaveChangesAsync();

            return(await GetUserFromToken(requestToken));
        }
Esempio n. 6
0
        public async Task <ActionResult <List <FishRecordResponse> > > GetUserRecords(string token)
        {
            await using FishingRecorderContext context = new FishingRecorderContext();

            var user = await GetUserFromToken(token);

            if (user == null)
            {
                user = await SaveNewUserFromToken(token);
            }

            return(await context.FishRecord
                   .Where(u => u.UserId == user.UserId)
                   .Select(r => new FishRecordResponse(r))
                   .ToListAsync());
        }