public ActionResult SignIn(FormCollection forms) { var userIdentity = User.Identity; if (userIdentity.IsAuthenticated) { var identity = userIdentity as ClaimsIdentity; var register = new RegisterModel() { Email = identity.EmailAddress(), NameIdentifier = identity.NameIdentifier(), UserName = identity.Name, }; var melissaCore = new MelissaCore(); var IPAddress = melissaCore.GetClientIpAddress(this.Request); var user = Membership.GetUser(register.NameIdentifier); if (null == user) { user = Membership.CreateUser(register.NameIdentifier, Guid.NewGuid().ToString(), register.Email); var profile = new UserSaveProfile() { UserIdentifier = user.Identifier(), DisplayName = identity.Name(), FacebookTokenExpiration = identity.Expiration(), IdentityProvider = identity.IdentityProvider(), FacebookAccessToken = identity.FacebookAccessToken(), Email = register.Email, FacebookId = long.Parse(register.NameIdentifier), IpAddress = IPAddress, }; var thread = this.profileCore.Register(profile.CallObject <ProfileFull>()); thread.Wait(); return(RedirectToAction("Welcome", "Dashboard")); } else { var profile = new UserSaveProfile() { UserIdentifier = user.Identifier(), FacebookTokenExpiration = identity.Expiration(), FacebookAccessToken = identity.FacebookAccessToken(), IpAddress = IPAddress, }; profile.ExecuteNonQuery(); return(RedirectToAction("Index", "Home")); } } else { return(RedirectToAction("ErrorRegistration", "Error")); } }
/// <summary> /// Delete Profile /// </summary> /// <param name="userId"></param> public void Delete(Guid userId) { if (Guid.Empty == userId) { throw new ArgumentException("userId"); } var sproc = new UserSaveProfile() { Delete = true, UserIdentifier = userId, }; sproc.ExecuteNonQuery(); }
/// <summary> /// Save /// </summary> /// <param name="profile">Profile</param> /// <returns>Profile</returns> public Profile Save(Profile profile, bool publishActivity = true, string facebookAccessToken = null, MobileOS os = MobileOS.Unknown) { if (null == profile) { throw new ArgumentNullException("profile"); } if (Guid.Empty == profile.Identifier) { throw new ArgumentException("Identifier"); } var original = this.SearchSingle(profile.Identifier, null, profile.Identifier); var sp = new UserSaveProfile() { UserIdentifier = profile.Identifier, Status = profile.Status.TrimIfNotNull(), DisplayName = profile.Name.TrimIfNotNull(), Email = profile.Email.TrimIfNotNull(), Location = profile.Location.TrimIfNotNull(), PrivacyLevel = (byte?)profile.PrivacyLevel, Longitude = profile.Longitude == 0 || profile.Latitude == 0? (double?)null : profile.Longitude, Latitude = profile.Longitude == 0 || profile.Latitude == 0 ? (double?)null : profile.Latitude, SearchRadius = profile.SearchRadius == 0 ? (int?)null : profile.SearchRadius, IpAddress = profile.IpAddress.TrimIfNotNull(), FacebookAccessToken = facebookAccessToken.TrimIfNotNull(), }; var data = sp.Execute().LoadObject <Profile>(); if (publishActivity) { if (!string.IsNullOrWhiteSpace(profile.Status) && original.Status != data.Status) { this.activityCore.StatusUpdate(data.Identifier, data.Status); } else { this.activityCore.ProfileUpdate(data.Identifier, os); } } return(data); }