public ActionResult SignUp(RegisterModel model) { if (ModelState.IsValid) { try { var data = _member.CreateMember(model.FirstName, model.LastName, model.Email,null, model.Password, model.Birthday, model.Gender, null, null, null, null, null); if (data.Code != "1") { ModelState.AddModelError("", data.Message); return View(model); } var user = _member.GetSingleMemberByUsernameOrEmail(null, model.Email); SessionManager.IsLoggedIn = true; SessionManager.UserLogged = new UserProfile() { UserName = user.Member.MemberUserName, UserId = user.Member.MemberId, FirstName = model.FirstName, LastName = model.LastName }; return RedirectToAction("Index", "Home"); } catch (Exception e) { Logger.Error(e.Message); ModelState.AddModelError("", e.Message); } } return View(model); }
public ActionResult SignUp(RegisterModel model, string returnUrl) { if (ModelState.IsValid) { try { var data = MemberRepository.CreateMemberSimple(model.FirstName, model.LastName, null, model.Birthday.ToString("MM/dd/yyyy"), model.Email, null, model.Password, model.Gender); if (data.Code != "1") { ModelState.AddModelError("", data.Message); return View(model); } var user = MemberRepository.GetSingleByUserNameOrEmail(model.Email, null, null); SessionManager.IsLoggedIn = true; SessionManager.UserLogged = new UserProfile() { UserName = user.Member.MemberUserName, UserId = user.Member.MemberId, FirstName = model.FirstName, LastName = model.LastName, Avatar = user.Member.MemberAvatar, AvatarMedium = user.Member.MemberAvatarMedium, FacebookId = user.Member.MemberFacebookId, Gender = user.Member.MemberGender }; if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl)) return Redirect(returnUrl); return RedirectToAction("Index", "Home"); } catch (Exception e) { Logger.Error(e.Message); ModelState.AddModelError("", e.Message); } } return View(model); }
public ActionResult FacebookCallbackLogin(string code) { try { var fb = new Facebook.FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = Config.FacebookClientId, client_secret = Config.FacebookClientSecret, redirect_uri = RedirectUri.AbsoluteUri, code = code }); var accessToken = result.access_token; // Store the access token in the session Session["AccessToken"] = accessToken; // update the facebook client with the access token so // we can make requests on behalf of the user fb.AccessToken = accessToken; // Get the user's information dynamic me = fb.Get("me?fields=first_name,last_name,id,email,gender,username,birthday"); MemberResponseModel model = MemberRepository.GetSingleByFacebookId(me.id); if (model.Code == "-1" && model.Message.Contains("No member")) { MemberEditResponseModel data = MemberRepository.CreateMemberSimple(me.first_name, me.last_name, me.username, me.birthday, me.email, me.id, Contrib.CommonLib.MD5Hasher(me.first_name), me.gender == "male"); //Create member error if (data.Code == "-1") { var returnModel = new RegisterModel() { Email = me.email, FirstName = me.first_name, Gender = me.gender == "male", LastName = me.last_name, Birthday = Convert.ToDateTime(me.birthday) }; return View(@"~/Views/Account/SignUp.cshtml", returnModel); } //Create member success and then get avatar from facebook if (data.Code == "1") { //Get avatar from facebook api byte[] dataImg; using (var client = new WebClient()){ dataImg = client.DownloadData(string.Format(Config.FacebookGraphImage,me.username)); } var member = MemberRepository.ChangeAvatar(data.Message, "img.jpg", Convert.ToBase64String(dataImg), null); } model = MemberRepository.GetSingleByFacebookId(me.id); } SessionManager.IsLoggedIn = true; SessionManager.UserLogged = new UserProfile { FacebookId = model.Member.MemberFacebookId, FirstName = model.Member.MemberFirstName, LastName = model.Member.MemberLastName, UserName = model.Member.MemberUserName, UserId = model.Member.MemberId, Avatar = model.Member.MemberAvatar, AvatarMedium = model.Member.MemberAvatarMedium, Gender = model.Member.MemberGender }; return RedirectToAction("Index", "Home"); } catch (Exception ex) { Logger.Error(ex.Message); return RedirectToAction("Index", "Home"); } }