private User GetNewUser(UserSignupVM model, bool isSocialUser) { var newUser = new User(Guid.NewGuid(), DateTime.Now, false, isSocialUser); if (!isSocialUser) { SetPassword(newUser, model.Password); } return(newUser); }
private UserSignupVM GetSignupVMFromFbGet(FacebookClient fb) { dynamic me = fb.Get("me?fields=first_name,last_name,email"); var userSignupVM = new UserSignupVM { Email = me.email, Name = me.first_name + " " + me.last_name }; return(userSignupVM); }
public SignUpResponse SignUpUser(UserSignupVM model, bool isSocialUser) { if (HasSameEmail(model.Email)) { return(new SignUpResponse(false, ErrorCode.DUPLICATEEMAIL)); } var newUser = GetNewUser(model, isSocialUser); Mapper.SignupVMToUserForSignUp(model, newUser); UnitOfWork.Users.Add(newUser); UnitOfWork.Complete(); return(new SignUpResponse(true, newUser.UserId)); }
private async Task <UserSignupVM> GetGoogleUserData(string accessToken) { HttpClient httpClient = new HttpClient(); var url = "https://www.googleapis.com/oauth2/v1/userinfo?access_token=" + accessToken; httpClient.CancelPendingRequests(); HttpResponseMessage output = await httpClient.GetAsync(url); if (output.IsSuccessStatusCode) { string outputData = await output.Content.ReadAsStringAsync(); UserSignupVM vm = JsonConvert.DeserializeObject <UserSignupVM>(outputData); return(vm); } return(null); }
public ActionResult SignUp(UserSignupVM model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } var response = AccountService.SignUpUser(model, false); if (response.Success) { base.SignUserIn(response.UserId, model.Email, true); return(ReturnTo(returnUrl)); } else { ModelState.AddModelError("", response.ErrorCode.ToDescription()); return(View(model)); } }
protected ActionResult SignUpWithSocialAccount(UserSignupVM model, object returnUrl) { if (model == null || model.Email == null) { throw new Exception("Invalid data from social account"); } var response = AccountService.SignUpUser(model, true); //duplicate error is only error thrown from signup user if (!response.Success && response.ErrorCode == ErrorCode.DUPLICATEEMAIL) { SignInWithSocialAccount(model.Email); } else { SignUserIn(response.UserId, model.Email, true); } return(ReturnToEither(returnUrl)); }
public async Task <ActionResult> GoogleCallback(string code, string callBackAction, string errorReturnToAction, object returnUrl) { try { HttpWebRequest webRequest = GetHttpWebRequest(Request, code, callBackAction); GoogleAccessToken accessToken = GetAccessToken(webRequest); if (!IsAccessTokenValid(accessToken)) { throw new Exception("Invalid access token"); } UserSignupVM model = await GetGoogleUserData(accessToken.access_token); return(base.SignUpWithSocialAccount(model, returnUrl)); } catch (Exception) { TempData[SocialAccount.SOCIALSIGNUPERROR.ToDescription()] = ErrorCode.SOCIALSIGNUPERROR.ToDescription(); return(RedirectToAction(errorReturnToAction, "Account", new { returnUrl = returnUrl })); } }
public static void SignupVMToUserForSignUp(UserSignupVM vModel, User domain) { domain.Name = vModel.Name; domain.Email = vModel.Email; }