Esempio n. 1
0
 public void ActionsForm(GoogleModel action)
 {
     SearchInput.SendKeys("Selenium");
     Logo.Click();
     SearchButton.Click();
     SeleniumResult.Click();
 }
Esempio n. 2
0
        public void SeleniumSearch()
        {
            //Act
            _action = GoogleSearchFactory.Create();
            _googlePage.ActionsForm(_action);

            //Assert
            var actualTitle = Driver.Title;

            Assert.AreEqual("SeleniumHQ Browser Automation", actualTitle);
        }
Esempio n. 3
0
        public async Task <IActionResult> Google([FromBody] GoogleModel googleModel)
        {
            var appAccessToken = new AppAccessToken();
            var tokenResponse  = await Client.PostAsync($"https://www.googleapis.com/oauth2/v4/token?code={googleModel.Code}&client_id={_googleAuthModel.ClientId}&client_secret={_googleAuthModel.ClientSecret}&redirect_uri=http://localhost/oauth2callback&grant_type=authorization_code", null);

            if (tokenResponse.StatusCode != HttpStatusCode.OK)
            {
                return(new BadRequestObjectResult(new { code = "InvalidCode", description = tokenResponse.Content.ReadAsStringAsync().Result }));// "Google authorization code is not valid."});
            }
            appAccessToken = JsonConvert.DeserializeObject <AppAccessToken>(tokenResponse.Content.ReadAsStringAsync().Result);
            var userResponse = await Client.GetStringAsync($"https://www.googleapis.com/oauth2/v2/userinfo?access_token={appAccessToken.AccessToken}");

            var userInfo     = JsonConvert.DeserializeObject <GoogleUserData>(userResponse);
            var existingUser = await _userManager.FindByEmailAsync(userInfo.Email);

            if (existingUser == null)
            {
                var user = new ApplicationUser
                {
                    GoogleId    = userInfo.Id,
                    Email       = userInfo.Email,
                    UserName    = userInfo.FirstName + userInfo.LastName,
                    PictureUrl  = userInfo.Picture,
                    Visibility  = true,
                    Nationality = "US"
                };
                if (userInfo.Gender != null)
                {
                    user.Gender = userInfo.Gender.Equals("male") ? Gender.Male : userInfo.Gender.Equals("female") ? Gender.Female : Gender.Other;
                }
                else
                {
                    user.Gender = Gender.None;
                }

                user.UserName = UserExtensions.RemoveDiacritics(user.UserName);
                var result = await _userManager.CreateAsync(user, Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(0, 8));

                if (!result.Succeeded)
                {
                    return(new BadRequestObjectResult(result.Errors));
                }
                else
                {
                    existingUser = await _userManager.FindByNameAsync(user.UserName);
                }
            }

            var jwt = await Tokens.GenerateJwt(_jwtFactory.GenerateClaimsIdentity(existingUser.UserName, existingUser.Id),
                                               _jwtFactory, existingUser.UserName, _jwtOptions, new JsonSerializerSettings { Formatting = Formatting.Indented }, existingUser.ProfileComplete);

            return(new OkObjectResult(jwt));
        }
        // POST: api/<controller>/Login
        public async Task <IActionResult> GoogleLogin(GoogleModel model)
        {
            var test = _appSettings.JWT_Secret;

            if (VerifyToken(model.idToken))
            {
                var user = await _userManager.FindByEmailAsync(model.Email);

                if (user == null)
                {
                    var applicationUser = new User()
                    {
                        UserName = model.name.Replace(' ', '_').ToLower().Replace('ć', 'c').Replace('č', 'c'),
                        Email    = model.Email,
                        Name     = model.firstName,
                        Surname  = model.lastName,
                        Role     = UserRole.Registred,
                    };

                    try
                    {
                        //   _context.Users.Add(applicationUser);
                        //    await _context.SaveChangesAsync();
                        await _userManager.CreateAsync(applicationUser);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
                user = await _userManager.FindByEmailAsync(model.Email);

                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Subject = new ClaimsIdentity(new Claim[]
                    {
                        new Claim("UserId", user.Id.ToString()),
                        new Claim("Roles", user.Role.ToString()),
                    }),
                    Expires            = DateTime.UtcNow.AddDays(1),
                    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_appSettings.JWT_Secret)), SecurityAlgorithms.HmacSha256Signature)
                };
                var tokenHandler  = new JwtSecurityTokenHandler();
                var securityToken = tokenHandler.CreateToken(tokenDescriptor);
                var token         = tokenHandler.WriteToken(securityToken);
                return(Ok(new { token }));
            }

            return(Ok());
        }
 /// <summary>
 /// Set page content
 /// </summary>
 /// <param name="m">Model</param>
 private void SetPageContent(GoogleModel m)
 {
     Content = new StackLayout
     {
         Orientation = StackOrientation.Vertical,
         Padding     = new Thickness(8, 30),
         Children    =
         {
             new Label
             {
                 Text      = m.DisplayName,
                 TextColor = Color.Black,
                 FontSize  = 22,
             },
             new Label
             {
                 Text      = m.Id,
                 TextColor = Color.Black,
                 FontSize  = 22,
             },
             new Label
             {
                 Text      = m.Verified.ToString(),
                 TextColor = Color.Black,
                 FontSize  = 22,
             },
             new Label
             {
                 Text      = m.Gender,
                 TextColor = Color.Black,
                 FontSize  = 22,
             },
             new Label
             {
                 Text      = m.Tagline,
                 TextColor = Color.Black,
                 FontSize  = 22,
             },
             new Label
             {
                 Text      = m.CircledByCount.ToString(),
                 TextColor = Color.Black,
                 FontSize  = 22,
             },
             new Label
             {
                 Text      = m.Occupation,
                 TextColor = Color.Black,
                 FontSize  = 22,
             },
             new Xamarin.Forms.Image
             {
                 Source        = m.Image.Url,
                 HeightRequest = 100
             },
             new Xamarin.Forms.Image
             {
                 Source        = m.Cover.CoverPhoto.Url,
                 HeightRequest = 100
             },
         }
     };
 }