public AuthenticateUserResponse IsAuthenticated()
        {
            AuthenticateUserInput userTry = new AuthenticateUserInput()
            {
                Username   = Username,
                Password   = Password,
                DeviceName = "Apple",
                Station    = "123",
                Version    = "1"
            };
            var authResponse = new AuthenticateUserResponse();

            try
            {
                if (Mvx.Resolve <IValidation>().ObjectIsNotNull(userTry))
                {
                    authResponse = Mvx.Resolve <IRestService>().AuthenticateUser(userTry);
                }
            }
            catch (Exception)
            {
                Mvx.Resolve <IUserDialogs>().Toast("An error occurred!", null);
                //logger.Log(LogLevel.Info,e.ToString);
            }
            return(authResponse);
        }
        public AuthenticateUserResponse AuthenticateUser(AuthenticateUserInput input)
        {
            //logger.Trace("Service : IRestService, Method : AuthenticateUser , Request : AuthenticateUserInput = {"Username" : input.username,"Password" : input.Password, "DeviceName" : "Apple", "Station" : "123", "Version" : "1" };")
            AuthenticateUserResponse loginResponse = new AuthenticateUserResponse();

            if (input.Username == "admin" && input.Password == "password")
            {
                loginResponse = new AuthenticateUserResponse()
                {
                    ReturnCode = "1",
                    Name       = "Admin User",
                    Message    = "Successfully Login",
                    AppAccess  = "Pier,Arrival,Departure,Claim,BSO"
                };
            }
            else
            {
                loginResponse = new AuthenticateUserResponse()
                {
                    ReturnCode = "0",
                    Name       = "XamarinRFID",
                    Message    = "Failed Login",
                    AppAccess  = null
                };
            }
            //logger.Trace("Service : IRestService , Method : AuthenticateUser , Response : AuthenticateUserResponse = {"Name" : loginResponse.Name , "AppAccess" : loginResponse.AppAccess, "ReturnCode" : loginResponse.ReturnCode,"Message" : loginResponse.Message};
            return(loginResponse);
        }
        public IActionResult Authenticate([FromBody] AuthenticateUserInput input)
        {
            var user = _repository.FirstOrDefault(p => p.Username == input.Username);

            if (user == null || !user.Authenticate(input.Username, input.Password))
            {
                return(BadRequest(new { message = "Usuário ou senha inválidos!" }));
            }

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new[]
                {
                    new Claim("UserId", user.Id.ToString())
                }),
                Expires            = DateTime.UtcNow.AddDays(14),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Runtime.JwtSecret)), SecurityAlgorithms.HmacSha256Signature)
            };
            var tokenHandler      = new JwtSecurityTokenHandler();
            var securityToken     = tokenHandler.CreateToken(tokenDescriptor);
            var token             = tokenHandler.WriteToken(securityToken);
            var authenticatedUser = new { user.Name, user.Username, user.Email, user.Role };

            return(new OkObjectResult(new { token, authenticatedUser }));
        }
        public async Task <IActionResult> AuthenticateUser(AuthenticateUserRequest request)
        {
            await InvalidateExistingAccessToken();

            var authInput = new AuthenticateUserInput(request.Username, request.Password);
            await _authInputHandler.HandleAsync(authInput, _authOutputHandler);

            return(_authOutputHandler.Result());
        }
        public void AuthenticateUser_Successful()
        {
            //Arrange
            var SystemUnderTest = new RestService();
            var dependency      = new AuthenticateUserInput()
            {
                Username   = "******",
                Password   = "******",
                DeviceName = "Apple",
                Station    = "123",
                Version    = "1"
            };
            var expected = "1";
            //Act
            var actual = SystemUnderTest.AuthenticateUser(dependency);

            //Assert
            Assert.AreEqual(expected, actual.ReturnCode);
        }
        public async Task <AuthenticateUserResponse> AuthenticateUser(AuthenticateUserInput input)
        {
            var items   = new AuthenticateUserResponse();
            var restUrl = _passengerLoginURL;
            var uri     = new Uri(string.Format(restUrl, string.Empty));
            var json    = JsonConvert.SerializeObject(input);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await client.PostAsync(uri, content);

            if (response.IsSuccessStatusCode)
            {
                var contents = await response.Content.ReadAsStringAsync();

                items = JsonConvert.DeserializeObject <AuthenticateUserResponse>(contents);
            }

            return(items);
        }
        public async Task <AuthenticateUserResponse> AuthenticateUser(AuthenticateUserInput input)
        {
            logger.Trace("Service : IRestService, Method : AuthenticateUser , Request : AuthenticateUserInput = {'Username' : " + input.Username + ",'Password' : " + input.Password + ", 'DeviceName' : 'Apple', 'Station' : '123', 'Version' : '1'};");
            var items   = new AuthenticateUserResponse();
            var restUrl = "http://172.26.82.21:5000/AuthWebservice/login";
            var uri     = new Uri(string.Format(restUrl, string.Empty));
            var json    = JsonConvert.SerializeObject(input);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await client.PostAsync(uri, content);

            if (response.IsSuccessStatusCode)
            {
                var contents = await response.Content.ReadAsStringAsync();

                items = JsonConvert.DeserializeObject <AuthenticateUserResponse>(contents);
            }
            logger.Trace("Service : IRestService , Method : AuthenticateUser , Response : AuthenticateUserResponse = {'Name' : " + items.Name + ", 'AppAccess' : " + items.Applications + ", 'ReturnCode' : " + items.StatusCode + ", 'Message' :" + items.Message + "}");
            return(items);
        }