public ActionResult LoginByFacebook(UserLoginByFacebookDTO userLoginDTO)
        {
            if (IsUserLogIn)
            {
                return(RedirectToAction("Index", "Desktop"));
            }
            if (!userLoginDTO.Validate())
            {
                return(RedirectToAction("Registration", "Errors"));
            }
            // get user
            var user = _DL.User.Get.ByExternalID(userLoginDTO.ExternalID, EN_RegistrationSource.Facebook);

            // login
            if (user != null)
            {
                CurrentUser = user;
                return(RedirectToAction("Index", "Desktop"));
            }
            // register
            else
            {
                VM_UserRegister regUser = userLoginDTO.TO_VM();
                regUser.InvitedBy        = _DL.User.Get.SystemUser();
                regUser.UserLoginDetails = new Security.Salted_Hash();
                var userNew = _DL.User.Account.Register(regUser);
                CurrentUser = _DL.User.Get.ByID(userNew.UserID);
                // Get avatars
                System.Net.WebClient client = new System.Net.WebClient();
                Stream avatatLarge          = client.OpenRead(userLoginDTO.PictureLarge);
                // replace avatars
                AvatarGenerator.Generate(avatatLarge, CurrentUser.UserID);
                return(RedirectToAction("Index", "Desktop"));
            }
        }
Esempio n. 2
0
                public static VM_UserRegister Register(VM_UserRegister user)
                {
                    using (var exodusDB = new exodusEntities())
                    {
                        var newUserID = new ObjectParameter("userID", 0);

                        exodusDB.stp_User_Register(
                            userInvitedBy: user.InvitedBy.UserID,
                            userLogin: user.UserEmail,
                            userPasswordHash: user.UserLoginDetails.Hash,
                            userPasswordSalt: user.UserLoginDetails.Salt,
                            hashIterations: user.UserLoginDetails.Iterations,
                            userFirstName: user.UserFirstName,
                            userLastName: user.UserLastName,
                            userTypeID: user.UserType.ToInt(),
                            userStatusID: user.UserStatus.ToInt(),
                            userStatusMessage: "",
                            userAbout: "",
                            userRegistrationSource: user.RegistrationSource.ToInt(),
                            userFlags: 0,
                            userID: newUserID,
                            externalID: user.ExternalID
                            );
                        //
                        long userID = Convert.ToInt64(newUserID.Value);
                        if (userID > 0)
                        {
                            //
                            Global.Cache.AddUserEmail(user.UserEmail);
                            //
                            Global.Cache.AddUserId(userID);
                            //
                            Global.Cache.UpdateUserAvatar(userID, UserAvatar.DefaultAvatar, true);
                            //
                            user.UserID = userID;
                        }
                    }
                    return(user);
                }