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")); } }
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); }