private void GetIDAndActivate()
    {
        try
        {
            _ID = Request.QueryString["ID"];
            if (!string.IsNullOrEmpty(_ID))
            {
                tblActivationRequest actReq = (from req in GoProGoDC.ProfileDC.tblActivationRequests
                                               where req.ActivationID.ToString() == _ID && !req.IsFulfilled
                                               select req).SingleOrDefault <tblActivationRequest>();

                if (actReq != null && actReq.IsFulfilled == false)
                {
                    MembershipUser user = Membership.GetUser(actReq.tblProfile.UserID);
                    if (!user.IsApproved)
                    {
                        //Approved user account first
                        user.IsApproved = true;
                        Membership.UpdateUser(user);

                        //Following line will submit changes in DB for creating file
                        tblFileInformation fileInfo = VirtualFS.CreateFolder(user.UserName, actReq.tblProfile.ID, null);
                        actReq.tblProfile.RootFolderID = fileInfo.ID;
                        actReq.IsFulfilled             = true;
                        //Following line will submit changes to update Profile

                        GoProGoDC.ProfileDC.SubmitChanges(ConflictMode.FailOnFirstConflict);
                        pnlSuccess.Visible = true;
                    }
                }
                else
                {
                    pnlFailure.Visible = true;
                }
            }
            else
            {
                throw new Exception("Invalid request.");
            }
        }
        catch (Exception ex)
        {
            ((PublicMaster)this.Master).ShowMessage(ex.Message, MessageType.Error);
        }
    }
예제 #2
0
    public void btnCreateUser_Click(object sender, EventArgs e)
    {
        if (OnBeforeUserCreate != null)
        {
            OnBeforeUserCreate(this, new EventArgs());
        }

        string userName     = UserName.Trim();
        string email        = Email.Trim();
        string password     = Password.Trim();
        string confPassword = ConfirmPassword.Trim();
        MembershipCreateStatus createStatus = MembershipCreateStatus.UserRejected;
        MembershipUser         user;

        try
        {
            if (password == confPassword)
            {
                if (password == confPassword)
                {
                    user = Membership.CreateUser(userName, password, email, null, null, false, out createStatus);
                    if (createStatus != MembershipCreateStatus.Success)
                    {
                        throw new Exception("User creation failed: " + createStatus.ToString());
                    }
                }
                else
                {
                    throw new Exception("Password Comparison failed.");
                }

                Roles.AddUsersToRole(new string[] { userName }, "Members");

                if (OnAfterUserCreate != null)
                {
                    OnAfterUserCreate(this, new EventArgs());
                }

                //Right after creating user create a new profile for this user
                if (OnBeforeProfileCreate != null)
                {
                    OnBeforeProfileCreate(this, null);
                }

                tblProfile prof = new tblProfile()
                {
                    UserID = new Guid(user.ProviderUserKey.ToString())
                    ,
                    RegistrationDate = DateTime.Parse(DateTime.Now.ToShortDateString())
                    ,
                    IsActive = false
                    ,
                    IsCompleted = false
                    ,
                    IsPublic = false
                    ,
                    MemberShipTypeID = (int)GoProGo.Business.Entities.MemberShipType.Standard
                    ,
                    Longitude = 0
                    ,
                    Latitude = 0
                };
                GoProGoDC.ProfileDC.tblProfiles.InsertOnSubmit(prof);
                GoProGoDC.ProfileDC.SubmitChanges();

                tblActivationRequest activation = new tblActivationRequest()
                {
                    ActivationID = Guid.NewGuid()
                    ,
                    Email = this.Email
                    ,
                    IsFulfilled = false
                    ,
                    ProfileID = prof.ID
                    ,
                    CreationDate = DateTime.Now
                };
                prof.tblActivationRequests.Add(activation);
                GoProGoDC.ProfileDC.SubmitChanges();


                pnlConfirmationMessage.Visible = true;
                pnlCreateUser.Visible          = false;
                lblEmail.Text = Email;

                //if (OnAfterProfileCreate != null)
                //    OnAfterProfileCreate(this, null);
            }
            else
            {
                throw new Exception("Password comparison failed.");
            }
        }
        catch (SqlException ex)
        {
            if (createStatus == MembershipCreateStatus.Success)
            {
                Membership.DeleteUser(userName);
            }
            if (this.OnError != null)
            {
                OnError(this, new ControlErrorArgs()
                {
                    Severity = 10, Message = "General sql exception."
                });
            }
        }
        catch (Exception ex)
        {
            if (createStatus == MembershipCreateStatus.Success)
            {
                Membership.DeleteUser(userName);
            }
            if (this.OnError != null)
            {
                OnError(this, new ControlErrorArgs()
                {
                    InnerException = ex
                });
            }
        }
    }