public async Task <LoginTokenDataModel> AddExternalUser(ExternalUserModel addUserModel) { try { if (addUserModel != null) { List <KeyValuePair <string, object> > param = new List <KeyValuePair <string, object> >() { new KeyValuePair <string, object>("@dob", addUserModel.Dob), new KeyValuePair <string, object>("@gender", addUserModel.Gender), new KeyValuePair <string, object>("@firstName", addUserModel.FirstName), new KeyValuePair <string, object>("@lastName", addUserModel.LastName), new KeyValuePair <string, object>("@email", addUserModel.Email), new KeyValuePair <string, object>("@mobile", addUserModel.Mobile), new KeyValuePair <string, object>("@Provider", addUserModel.Provider), new KeyValuePair <string, object>("@ProviderKey", addUserModel.ProviderKey) }; SigninDetails signinDetails = new SigninDetails(); CredentialModel credentialModel = new CredentialModel() { isExternal = true, UserName = addUserModel.Email }; DataExecutor.ExecuteScalar(UtilityConstant.Procedures.Mst_AddExternalUser, param); return(signinDetails.CheckUserCredentials(credentialModel)); } return(new LoginTokenDataModel()); } catch (Exception ex) { return(new LoginTokenDataModel()); } }
async void OnGoogleLogin(object sender, EventArgs args) { var userdata = await CrossGoogleClient.Current.LoginAsync(); GoogleUser data = userdata.Data; ExternalUserModel userinfo = new ExternalUserModel(); userinfo.id = data.Id; userinfo.idToken = data.Id; userinfo.name = data.Name; userinfo.email = data.Email; userinfo.profileImage = data.Picture.AbsoluteUri; userinfo.LoginProvider = "GOOGLE".ToUpper(); userinfo.provider = "GOOGLE".ToUpper(); bool result = await(new LoginServices()).ExternalLogin(userinfo); if (result) { await Navigation.PopAsync(); } else { await DisplayAlert("", "Not able to Login!", "Ok"); } }
public async Task <IActionResult> Create([Bind("Id,UserName,FullName,Password,Email,Ext,Mobile,DptId,VendorId,DateCreated,LastActivityDate,Status")] AppUserModel appUserModel) { if (ModelState.IsValid) { /* Check userName. */ var nameIsExist = _context.AppUsers.Where(u => u.UserName == appUserModel.UserName).FirstOrDefault(); if (nameIsExist != null) { ModelState.AddModelError("UserName", "此ID已被使用"); return(View(appUserModel)); } /* Create user to appUser table. */ appUserModel.DateCreated = DateTime.Now; _context.Add(appUserModel); /* Create same data to externalUsers table. */ ExternalUserModel externalUserModel = new ExternalUserModel() { Id = appUserModel.Id, Password = appUserModel.Password, UserName = appUserModel.UserName }; _context.Add(externalUserModel); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(appUserModel)); }
async void OnFacebookLogin(object sender, EventArgs args) { var userdata = await CrossFacebookClient.Current.RequestUserDataAsync(new string[] { "email", "first_name", "gender", "last_name", "birthday" }, new string[] { "email", "user_birthday" }); var data = userdata.Data; //var json = JsonConvert.SerializeObject(data); var d = JsonConvert.DeserializeObject <FacebookModel>(data); ExternalUserModel userinfo = new ExternalUserModel(); userinfo.id = d.id; userinfo.idToken = d.id; userinfo.name = d.first_name; userinfo.email = d.email; userinfo.LoginProvider = "FACEBOOK".ToUpper(); userinfo.provider = "FACEBOOK".ToUpper(); bool result = await(new LoginServices()).ExternalLogin(userinfo); if (result) { await Navigation.PopAsync(); } else { await DisplayAlert("", "Not able to Login!", "Ok"); } }
async void OnExternalLogin(object sender, EventArgs args) { ExternalUserModel um = new ExternalUserModel(); await(new RegisterServices()).RegisterExternal(um); //var externalDetails = await (new RegisterServices()).GetExternalDetails(); //await (new RegisterServices()).FacebookSignUp(externalDetails.Where(x => x.Name.ToUpper() == "FACEBOOK").FirstOrDefault()); }
public async Task <bool> ExternalLogin(ExternalUserModel userModel) { try { if (CrossConnectivity.Current.IsConnected) { HttpClient httpClient = new HttpClient(); var uri = new Uri(string.Concat(Constants.baseUrl, "/api/Account/GoogleExternalSignUp")); var json = JsonConvert.SerializeObject(userModel); var content = new StringContent(json, Encoding.UTF8, "application/json"); // var response = await httpClient.PostAsync(uri, content); var requestTask = httpClient.PostAsync(uri, content); var response = Task.Run(() => requestTask); string result = await response.Result.Content.ReadAsStringAsync(); var message = JsonConvert.DeserializeObject <ExternalLoginResponseModel>(result); if (response.Result.IsSuccessStatusCode) { RegisterUserModel rum = new RegisterUserModel(); rum.Id = int.Parse(message.id); rum.UserName = message.userName; rum.Email = message.email; rum.LoginProvider = userModel.LoginProvider; rum.Role = message.roles; rum.profileImage = message.profileImage; rum.isLoggedIn = true; App.Database.SaveUser(rum); return(true); } else { return(false); } } } catch (Exception e) { Console.Write(e.StackTrace.ToString()); return(false); } return(false); }
public ActionResult ApproveExternalUser() { var externalUserList = from e in db.ProjectLaucherSet_ExtenalUser where e.isDisabled == true select e; List<ExternalUserModel> modelList = new List<ExternalUserModel>(); foreach (ProjectLaucherSet_ExtenalUser e in externalUserList) { ExternalUserModel model = new ExternalUserModel(); model.external_user = e; model.laucher = e.ProjectLaucherSet; modelList.Add(model); } return View(modelList); }
// // public ActionResult AdminExternals() { List<ExternalUserModel> modelList = new List<ExternalUserModel>(); try { List<ProjectLaucherSet_ExtenalUser> externals = (from e in db.ProjectLaucherSet_ExtenalUser select e).ToList(); foreach (ProjectLaucherSet_ExtenalUser e in externals) { ExternalUserModel model = new ExternalUserModel(); model.external_user = e; model.laucher = e.ProjectLaucherSet; modelList.Add(model); } } catch (Exception ex) { } return View(modelList); }
async void OnGoogleLogin(object sender, EventArgs args) { var userdata = await CrossGoogleClient.Current.LoginAsync(); GoogleUser data = userdata.Data; ExternalUserModel userinfo = new ExternalUserModel(); userinfo.id = data.Id; userinfo.idToken = data.Id; userinfo.name = data.Name; userinfo.email = data.Email; userinfo.profileImage = data.Picture.AbsoluteUri; userinfo.LoginProvider = "GOOGLE".ToUpper(); userinfo.provider = "GOOGLE".ToUpper(); userinfo.Role = "Parent".ToUpper(); await(new RegisterServices()).RegisterExternal(userinfo); }
async void OnFacebookLogin(object sender, EventArgs args) { var userdata = await CrossFacebookClient.Current.RequestUserDataAsync(new string[] { "email", "first_name", "gender", "last_name", "birthday" }, new string[] { "email", "user_birthday" }); var data = userdata.Data; //var json = JsonConvert.SerializeObject(data); var d = JsonConvert.DeserializeObject <FacebookModel>(data); ExternalUserModel userinfo = new ExternalUserModel(); //userinfo.id = data.Id; //userinfo.idToken = data.Id; //userinfo.name = data.Name; //userinfo.email = data.Email; userinfo.LoginProvider = "FACEBOOK".ToUpper(); userinfo.provider = "FACEBOOK".ToUpper(); userinfo.Role = "Parent".ToUpper(); await(new RegisterServices()).RegisterExternal(userinfo); }
public async Task <GrantValidationResult> ExecuteAsync(ExternalUserModel info, string provider) { var user = await _userManager.FindByLoginAsync(provider, info.Id); if (user == null) { user = new UserEntity { Email = info.Email, UserName = info.Id, FullName = info.FullName ?? $"{info.LastName} {info.FirstName}", AvatarUrl = info.AvatarUrl, CreatedAt = DateTime.UtcNow }; await _userManager.CreateAsync(user); } var claims = await _userManager.GetClaimsAsync(user); await _userManager.AddLoginAsync(user, new UserLoginInfo(provider, info.Id, provider)); return(new GrantValidationResult(user.Id.ToString(), provider, claims, provider, null)); }
/// <summary> /// RegisterExternal: External Signup i.e, Facebook & Google /// </summary> /// <param name="userModel"></param> /// <returns></returns> public async Task RegisterExternal(ExternalUserModel userModel) { try { if (CrossConnectivity.Current.IsConnected) { HttpClient httpClient = new HttpClient(); var uri = new Uri(string.Concat(Constants.baseUrl, "/api/Account/GoogleExternalSignUp")); var json = JsonConvert.SerializeObject(userModel); var content = new StringContent(json, Encoding.UTF8, "application/json"); // var response = await httpClient.PostAsync(uri, content); var requestTask = httpClient.PostAsync(uri, content); var response = Task.Run(() => requestTask); string result = await response.Result.Content.ReadAsStringAsync(); var message = JsonConvert.DeserializeObject <ResponseModel>(result); if (response.Result.IsSuccessStatusCode) { RegisterUserModel rum = new RegisterUserModel(); rum.Id = int.Parse(message.Id); rum.UserName = userModel.name; rum.Email = userModel.email; rum.LoginProvider = userModel.LoginProvider; rum.Role = userModel.Role; rum.profileImage = userModel.profileImage; rum.IsRegistered = true; if (userModel.Role.Equals("HELPER")) { HelperRegister.Instance.GotoNext(rum); } else { Register.Instance.GotoNext(rum); } } else { if (userModel.Role.Equals("HELPER")) { HelperRegister.Instance.ShowError(message.Message); } else { Register.Instance.ShowError(message.Message); } Console.Write(message.Message); } } } catch (Exception e) { Console.Write(e.StackTrace.ToString()); } }