Ejemplo n.º 1
0
        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"));
            }
        }
Ejemplo n.º 2
0
        /// <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();
        }
Ejemplo n.º 3
0
        /// <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);
        }