Exemplo n.º 1
0
        public async Task <Walk> Add(Walk walk)
        {
            await _context.Walk.AddAsync(walk);

            await _context.SaveChangesAsync();

            return(walk);
        }
Exemplo n.º 2
0
        public async Task <User> Add(User user)
        {
            await _context.User.AddAsync(user);

            await _context.SaveChangesAsync();

            return(user);
        }
Exemplo n.º 3
0
        public async Task <Safewalker> Update(Safewalker walker)
        {
            var cacheEntryOptions = new MemoryCacheEntryOptions()
                                    .SetSlidingExpiration(TimeSpan.FromMinutes(60));

            _cache.Set(walker.Email, walker, cacheEntryOptions);

            _context.Safewalker.Update(walker);
            await _context.SaveChangesAsync();

            return(walker);
        }
Exemplo n.º 4
0
        public async Task <string?> GetUser(string email, string password)
        {
            var user = await _context.User.SingleOrDefaultAsync(m => m.Email == email && m.Password == password);

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

            var tokenHandler = new JwtSecurityTokenHandler();
            // Use secret verbatim when testing
            //var key = Encoding.ASCII.GetBytes("owbpiwnbowhviervhpoweinvrbpi7459neoriug98908t345ijf803304");
            var key             = Encoding.ASCII.GetBytes(_appSettings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, user.Id.ToString())
                }),
                Expires            = DateTime.UtcNow.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);

            user.Token = tokenHandler.WriteToken(token);

            // update db with token
            _context.User.Update(user);
            await _context.SaveChangesAsync();

            // add user to cache
            var cacheEntryOptions = new MemoryCacheEntryOptions()
                                    .SetSlidingExpiration(TimeSpan.FromMinutes(60));

            _cache.Set(email, user, cacheEntryOptions);

            return(user.Token);
        }