public override MembershipCreateStatus RegisterUser(RegistrationViewModel viewModel)
        {
            var userManager = UserManager.GetManager(this.MembershipProviderName);

            Telerik.Sitefinity.Security.Model.User user;
            MembershipCreateStatus status;

            using (new ElevatedModeRegion(userManager))
            {
                if (this.TryCreateUser(userManager, viewModel, out user, out status))
                {
                    userManager.SaveChanges();

                    this.CreateUserProfiles(user, viewModel.Profile);

                    this.AssignRolesToUser(user);

                    this.ConfirmRegistration(userManager, user);
                    //this.ExecuteUserProfileSuccessfullUpdateActions();
                }

                if (status == MembershipCreateStatus.DuplicateUserName)
                {
                    IEnumerable <IJobListingMapper> jobListingMappers = new List <IJobListingMapper> {
                        new JXTNext_JobListingMapper()
                    };
                    IEnumerable <IMemberMapper> memberMappers = new List <IMemberMapper> {
                        new JXTNext_MemberMapper()
                    };
                    IRequestSession requestSession = new SFEventRequestSession {
                        UserEmail = viewModel.Email
                    };

                    IBusinessLogicsConnector blConnector = new JXTNextBusinessLogicsConnector(jobListingMappers, memberMappers, requestSession);
                    var res = blConnector.GetMemberByEmail(viewModel.Email);
                    if (res.Member == null)
                    {
                        Telerik.Sitefinity.Security.Model.User existingUser = JXTNext.Sitefinity.Common.Helpers.SitefinityHelper.GetUserByEmail(viewModel.Email);
                        UserProfileManager userProfileManager = UserProfileManager.GetManager();
                        UserProfile        profile            = userProfileManager.GetUserProfile(existingUser.Id, typeof(SitefinityProfile).FullName);
                        var fName = Telerik.Sitefinity.Model.DataExtensions.GetValue(profile, "FirstName");
                        var lName = Telerik.Sitefinity.Model.DataExtensions.GetValue(profile, "LastName");
                        JXTNext_MemberRegister memberReg = new JXTNext_MemberRegister
                        {
                            Email     = existingUser.Email,
                            FirstName = fName.ToString(),
                            LastName  = lName.ToString(),
                            Password  = existingUser.Password
                        };

                        blConnector.MemberRegister(memberReg, out string errorMessage);
                    }
                }
            }

            return(status);
        }
Exemplo n.º 2
0
        //IBusinessLogicsConnector _blConnector;
        //public CustomLoginFormModel(IBusinessLogicsConnector blConnector) : base()
        //{
        //    _blConnector = blConnector;
        //}
        public override LoginFormViewModel Authenticate(LoginFormViewModel input, HttpContextBase context)
        {
            input.LoginError = false;

            var cmsUser = JXTNext.Sitefinity.Common.Helpers.SitefinityHelper.GetUserByEmail(input.UserName);

            if (cmsUser != null)
            {
                IEnumerable <IJobListingMapper> jobListingMappers = new List <IJobListingMapper> {
                    new JXTNext_JobListingMapper()
                };
                IEnumerable <IMemberMapper> memberMappers = new List <IMemberMapper> {
                    new JXTNext_MemberMapper()
                };
                IRequestSession requestSession = new SFEventRequestSession {
                    UserEmail = input.UserName
                };

                IBusinessLogicsConnector connector = new JXTNextBusinessLogicsConnector(jobListingMappers, memberMappers, requestSession);

                var memberResponse = connector.GetMemberByEmail(input.UserName);
                if (memberResponse.Member == null)
                {
                    UserProfileManager userProfileManager = UserProfileManager.GetManager();
                    UserProfile        profile            = userProfileManager.GetUserProfile(cmsUser.Id, typeof(SitefinityProfile).FullName);
                    var fName = Telerik.Sitefinity.Model.DataExtensions.GetValue(profile, "FirstName");
                    var lName = Telerik.Sitefinity.Model.DataExtensions.GetValue(profile, "LastName");
                    JXTNext_MemberRegister memberReg = new JXTNext_MemberRegister
                    {
                        Email     = input.UserName,
                        FirstName = fName.ToString(),
                        LastName  = lName.ToString(),
                        Password  = input.UserName
                    };

                    if (connector.MemberRegister(memberReg, out string errorMessage))
                    {
                        Log.Write($"User created in the JXT DB ", ConfigurationPolicy.ErrorLog);
                    }
                }
            }


            var result = base.Authenticate(input, context);

            return(input);
        }