public ActionResult RegisterPrBeta(RegisterPrBetaViewModel model) { ViewBag.RegionId = new SelectList(market.Regions, "Id", "Name"); if (ModelState.IsValid) { UserModel user = new UserModel(); // Attempt to register the user MembershipCreateStatus createStatus = MembershipService.CreateUser(prBetaTempPass, model.Email.ToLower()); if (createStatus == MembershipCreateStatus.Success) { user.ActivationId = System.Guid.NewGuid().ToString(); MembershipUser RegisteredUser = Membership.GetUser(model.Email.ToLower()); RegisteredUser.IsApproved = false; Membership.UpdateUser(RegisteredUser); user.Email = model.Email.ToLower(); user.FirstName = "Rambla"; user.LastName = "User"; user.City = model.City; user.RegionId = model.RegionId; user.CountryId = 1; market.Badges.SingleOrDefault(b => b.Name == "Individual").Users.Add(user); market.Users.Add(user); market.SaveChanges(); //Use MvcMailer to send welcome email to newly registered user. //UserMailer.Welcome(newUser: user).Send(); Session["REQUESTED_ACCESS_USER"] = true; log.Info("Account - New user registered (" + model.Email.ToLower() + ")"); return(View("Register")); } else { log.Error("Account - Error registering new user. " + createStatus.ToString()); ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus)); } } log.Error("Account - RegisterModel Error."); // If we got this far, something failed, redisplay form ViewBag.PasswordLength = MembershipService.MinPasswordLength; return(View("../Home/Index", model)); }
public ActionResult RegisterFBPrivateBeta() { if (FacebookWebContext.Current.IsAuthenticated() && FacebookWebContext.Current.IsAuthorized()) { FacebookClient fbClient = new FacebookClient(FacebookWebContext.Current.AccessToken); dynamic me = fbClient.Get("me"); string facebookId = (string)me.id; string userEmail = (string)me.email; if (facebookId == null || userEmail == null) { throw new FacebookOAuthException(); } var user = market.Users.SingleOrDefault(u => u.Email == userEmail); if (user == null) { var location = me.location; if (location == null) { location = me.hometown; if (location == null) { var model = new RegisterPrBetaViewModel(); ModelState.AddModelError("", "Oops, your Facebook profile does not have your location information. Please use the form below to request access."); fbClient.Delete(facebookId + "/permissions"); FormsAuthentication.SignOut(); return(View("../Home/Index", model)); } } string[] address = ((string)location.name).Split(','); string city = address[0].Trim(); string prov = address[1].Trim(); //Let us create a new user market.Users.Add(new UserModel { Email = userEmail, FirstName = "Rambla", LastName = "User", City = city, RegionId = market.Regions.SingleOrDefault(r => r.Name.Contains(prov)).Id, CountryId = 1, isFacebookUser = true, FacebookUserId = facebookId, ActivationId = Guid.NewGuid().ToString() }); //Let us add a facebook user to our DB with isApproved set to false market.FacebookUsers.Add(new FacebookUser { Id = facebookId, UserModelEmail = (string)me.email, AccessToken = FacebookWebContext.Current.AccessToken, IsApproved = false, Expires = FacebookWebContext.Current.Session.Expires }); market.SaveChanges(); Session["REQUESTED_ACCESS_USER"] = true; log.Info("Account - New user registered (" + userEmail.ToLower() + ")"); return(View("Register")); } Session["REQUESTED_ACCESS_USER"] = true; return(View("Register")); } var regModel = new RegisterPrBetaViewModel(); ModelState.AddModelError("", "Oops, your Facebook profile does not have your location information. Please use the form below to request access."); return(View("../Home/Index", regModel)); }