示例#1
0
        public IActionResult GetUser()
        {
            var data = getUser.GetUsers();

            if (data == null)
            {
                return(BadRequest(new { message = "Users data couldn`t get" }));
            }

            return(Ok(data));
        }
示例#2
0
        public TokenResponse Authenticate(string username, string password)
        {
            var user = _user.GetUsers().SingleOrDefault(x => x.Username == username && x.Password == Cryptography.Encrypt(password, _appSettings.Secret));

            // return null if user not found
            if (user == null)
            {
                return(null);
            }

            // authentication successful so generate jwt token
            var tokenHandler    = new JwtSecurityTokenHandler();
            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(7),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };

            var token = tokenHandler.CreateToken(tokenDescriptor);

            TokenResponse tokenRes = new TokenResponse
            {
                token      = tokenHandler.WriteToken(token),
                expireDate = tokenDescriptor.Expires,
                UserId     = user.Id
            };

            return(tokenRes);
        }
示例#3
0
        public async Task <IActionResult> GetUser([FromQuery] string customerId)
        {
            DynamoTableUsers response = new DynamoTableUsers();

            try
            {
                response = await _getItem.GetUsers(customerId);
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
            return(Ok(response));
        }
示例#4
0
        public async Task <User> Update(string customerId, string plan)
        {
            var response = await _getUser.GetUsers(customerId);

            var currentplan = response.Users.Select(p => p.Plan).FirstOrDefault();


            var request = RequestBuilder(customerId, plan, currentplan);

            var result = await UpdateItemAsync(request);

            return(new User
            {
                Id = result.Attributes["id"].S,
                Plan = result.Attributes["customerPlan"].S,
            });
        }
示例#5
0
        public async Task <User> UpdateUserLastAccessed(string email, string newAccessed)
        {
            var response = await _getUser.GetUsers(email);

            var previousAccessed = response.Users.Select(p => p.LastAccessed).FirstOrDefault();

            var request = RequestBuilder(email, previousAccessed, newAccessed);

            var result = await UpdateItemAsync(request);

            return(new User
            {
                Email = result.Attributes["Email"].S,
                SubscriptionPlan = result.Attributes["SubscriptionPlan"].S,
                LastPaid = result.Attributes["LastPaid"].S,
                UserName = result.Attributes["UserName"].S,
                Password = result.Attributes["Password"].S,
                PhoneNo = result.Attributes["PhoneNo"].S,
                LastAccessed = result.Attributes["LastAccessed"].S
            });
        }
示例#6
0
        public async Task <IActionResult> GetUser([FromQuery] string email)
        {
            var response = await _getUser.GetUsers(email);

            return(Ok(response));
        }