protected void btnMemberPrev_Click(object sender, EventArgs e)
        {
            SForce.SforceService sfdcbindingMembership = new SForce.SforceService();
            SForce.LoginResult   LoginResult           = sfdcbindingMembership.login(strUserName, strPasswd);
            sfdcbindingMembership.Url = LoginResult.serverUrl;
            sfdcbindingMembership.SessionHeaderValue = new SForce.SessionHeader();

            sfdcbindingMembership.SessionHeaderValue.sessionId = LoginResult.sessionId;
            queryResultMembership = sfdcbindingMembership.query(strQuerySelectFromMembership);


            int nMemberIndex = (int)Session["MemberIndex"];

            if (nMemberIndex > 0)
            {
                nMemberIndex--;
            }

            Session["MemberIndex"] = nMemberIndex;

            SForce.Membership__c membership = (SForce.Membership__c)queryResultMembership.records[nMemberIndex];
            txtContactId.Text        = membership.Id;
            txtMembershipName.Text   = membership.Name;
            txtMembershipStatus.Text = membership.c4g_Membership_Status__c;
        }
        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            string strId = (string)Session["CurrentId"];

            SForce.Contact contact_update = new SForce.Contact();

            contact_update.Id = strId;

            contact_update.FirstName = txtFirstName.Text;
            contact_update.LastName  = txtLastName.Text;

            contact_update.MailingStreet     = txtStreetAddress.Text;
            contact_update.MailingCity       = txtCity.Text;
            contact_update.MailingState      = txtState.Text;
            contact_update.MailingPostalCode = txtZip.Text;
            contact_update.MobilePhone       = txtMobilePhone.Text;
            contact_update.Phone             = txtPhone.Text;
            contact_update.Email             = txtEmail.Text;

            SForce.SforceService sfdcbinding = new SForce.SforceService();

            SForce.LoginResult login_result = null;

            login_result    = sfdcbinding.login(strUserName, strPasswd);
            sfdcbinding.Url = login_result.serverUrl;
            sfdcbinding.SessionHeaderValue           = new SForce.SessionHeader();
            sfdcbinding.SessionHeaderValue.sessionId = login_result.sessionId;

            SForce.SaveResult[] saveResults = sfdcbinding.update(new SForce.sObject[] { contact_update });

            if (saveResults[0].success)
            {
                lblErrorMessage.Text = "The record id: " + saveResults[0].id + " is updated successfully.";

                Sfdcbinding                    = new SForce.SforceService();
                CurrentLoginResult             = Sfdcbinding.login(strUserName, strPasswd);
                Sfdcbinding.Url                = CurrentLoginResult.serverUrl;
                Sfdcbinding.SessionHeaderValue = new SForce.SessionHeader();

                Sfdcbinding.SessionHeaderValue.sessionId = CurrentLoginResult.sessionId;
                strQuerySelectFromContact = "select Id, FirstName, LastName, MailingAddress, Email, MobilePhone, Phone from Contact order by LastName nulls last";
                queryResult = Sfdcbinding.query(strQuerySelectFromContact);

                nTotalRecord = queryResult.size - 1;
            }
            else
            {
                lblErrorMessage.Text = "Error: " + saveResults[0].errors[0].message;
            }

            btnCancel.Enabled = false;
            btnUpdate.Enabled = false;
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //if (PreviousPage != null)
                //{
                //    FirstName = PreviousPage.FirstName;
                //    LastName = PreviousPage.LastName;
                //    MemberEmail = PreviousPage.Email;
                //}

                FirstName   = (string)Session["FirstName"];
                LastName    = (string)Session["LastName"];
                MemberEmail = (string)Session["Email"];

                //AccountName = LastName + " (" + FirstName + ") Household";

                //Session["AccountName"] = AccountName;

                //lblErrorMessage.Text = AccountName;

                //SetSQLStatementForConfirmEmail();

                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls;
            }

            InitializedSfdcbinding();
            if ((String)Session["AccountId"] != null)
            {
                strAccountId = (String)Session["AccountId"];
            }
            else
            {
                String strQueryForHousehold = "select Id from Account where cmm_Email__c = '" + txtEmail.Text + "'";

                SForce.QueryResult qrAcctHousehold = Sfdcbinding.query(strQueryForHousehold);

                if (qrAcctHousehold.size > 0)
                {
                    strAccountId = qrAcctHousehold.records[0].Id;
                }
            }
        }
        protected void LogIn(object sender, EventArgs e)
        {
            if (IsValid)
            {
                // Validate the user password
                var manager       = Context.GetOwinContext().GetUserManager <ApplicationUserManager>();
                var signinManager = Context.GetOwinContext().GetUserManager <ApplicationSignInManager>();

                //var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
                //var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();
                //var user = new ApplicationUser() { UserName = MemberEmail, Email = MemberEmail };
                //IdentityResult result = manager.Create(user, txtPassword.Text);


                // Confirm the user email whether or not the user is portal user
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls;
                //SetSQLStatementForPortalUser();
                //InitializedSfdcbinding();

                //SForce.QueryResult qrPortalUser = Sfdcbinding.query(strQueryContactForPortalUser);
                //if (qrPortalUser.size > 0)
                //{
                //SForce.Contact ctPortalUser = (SForce.Contact)qrPortalUser.records[0];

                //if (ctPortalUser.causeview__PortalUser__c == true)
                //{
                // Code for Login and Response.Redirect to MainForm.aspx page should be here

                // This doen't count login failures towards account lockout
                // To enable password failures to trigger lockout, change to shouldLockout: true
                var result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout: false);

                HttpBrowserCapabilities browser = Request.Browser;

                switch (result)
                {
                case SignInStatus.Success:
                    //IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
                    //if (browser.Type.Contains("Firefox") ||
                    //    browser.Type.Contains("Chrome") ||
                    //    browser.Type.Contains("Edge") ||
                    //    browser.Type.Contains("InternetExplorer11") ||
                    //    browser.Type.ToUpper().Contains("IE"))
                    //{
                    //    Response.Redirect("~/MainForm.aspx", false);
                    //}
                    //if (browser.Type.Contains("Safari")) Response.Redirect("~/MainFormSafari.aspx", false);
                    String strQueryForAccountCreationStep = "select cmm_Account_Creation_Step_Code__c, Id from Account where cmm_Email__c = '" + Email.Text + "'";

                    SForce.QueryResult qrAcctCreationStep = Sfdcbinding.query(strQueryForAccountCreationStep);

                    if (qrAcctCreationStep.size > 0)
                    {
                        SForce.Account acctCreationStep = qrAcctCreationStep.records[0] as SForce.Account;

                        Session["Email"]        = Email.Text;
                        Session["AccountId"]    = acctCreationStep.Id;
                        Session["PreviousPage"] = "Login";

                        switch (acctCreationStep.cmm_Account_Creation_Step_Code__c)
                        {
                        case "2":
                            Response.Redirect("~/PersonalDetails.aspx");
                            break;

                        case "3":
                            Response.Redirect("~/FamilyDetails.aspx");
                            break;

                        case "4":
                            Response.Redirect("~/MembershipDetails.aspx");
                            break;

                        case "5":
                            Response.Redirect("~/PaymentInfo.aspx");
                            break;

                        case "6":
                            Response.Redirect("~/HealthHistory.aspx");
                            break;

                        case "7":
                            Response.Redirect("~/Agreement.aspx");
                            break;

                        case "8":
                            // Show the message informing the user is already registered, tell the user to log on instead of registering
                            Response.Redirect("~/MainForm.aspx");
                            break;
                        }
                    }

                    break;

                case SignInStatus.LockedOut:
                    Response.Redirect("/Account/Lockout");
                    break;

                //case SignInStatus.RequiresVerification:
                //    Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}",
                //                                    Request.QueryString["ReturnUrl"],
                //                                    RememberMe.Checked),
                //                      true);
                //    break;
                case SignInStatus.Failure:
                    Context.GetOwinContext().Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                    //Response.Redirect("~/Account/Login.aspx");
                    lblFailureText.Text         = "Invalid login attempt";
                    pnlLoginFailureText.Visible = true;

                    break;

                default:
                    lblFailureText.Text         = "Invalid login attempt";
                    pnlLoginFailureText.Visible = true;
                    break;
                }
                //}
                //else
                //{
                //    FailureText.Text = "You are not a portal user";
                //    ErrorMessage.Visible = true;
                //}
                //}
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            //System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
            //InitializedSfdcbinding();

            if ((String)Session["AccountId"] != null)
            {
                strAccountId = (String)Session["AccountId"];
            }

            if ((String)Session["Email"] != null)
            {
                strEmail = (String)Session["Email"];
            }

            if ((String)Session["ContactId"] != null)
            {
                strPrimaryContactId = (String)Session["ContactId"];
            }
            else
            {
                String strQueryForPrimaryContactId = "select Id from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                                     "and cmm_Household_Role__c = 'Head of Household'";

                SForce.QueryResult qrPrimaryContactId = Sfdcbinding.query(strQueryForPrimaryContactId);

                if (qrPrimaryContactId.size > 0)
                {
                    SForce.Contact ctPrimaryContactId = qrPrimaryContactId.records[0] as SForce.Contact;

                    strPrimaryContactId = ctPrimaryContactId.Id;
                }
            }
            if ((String)Session["SpouseId"] != null)
            {
                strSpouseId = (String)Session["SpouseId"];
            }
            else
            {
                String strQueryForSpouseId = "select Id from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                             "and cmm_Household_Role__c = 'Spouse'";

                SForce.QueryResult qrSpouseId = Sfdcbinding.query(strQueryForSpouseId);

                if (qrSpouseId.size > 0)
                {
                    SForce.Contact ctSpouseId = qrSpouseId.records[0] as SForce.Contact;

                    strSpouseId = ctSpouseId.Id;
                }
            }

            String strQueryForChildrenId = "select Id from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                           "and cmm_Household_Role__c = 'Child'";

            SForce.QueryResult qrChildrenId = Sfdcbinding.query(strQueryForChildrenId);

            if (qrChildrenId.size > 0)
            {
                for (int i = 0; i < qrChildrenId.size; i++)
                {
                    SForce.Contact ctChildId = qrChildrenId.records[i] as SForce.Contact;

                    lstChildId.Add(ctChildId.Id);
                }
            }

            String strQueryForMedicareDetails = "select c4g_Qualifies_for_Medicare__c, c4g_Qualifies_for_Medicare_A_and_B__c from Contact " +
                                                " where cmm_Household__c = '" + strAccountId + "' and cmm_Household_Role__c = 'Head of Household'";

            SForce.QueryResult qrQualifyForMedicare = Sfdcbinding.query(strQueryForMedicareDetails);

            if (qrQualifyForMedicare.size > 0)
            {
                SForce.Contact ctQualifyForMedicare = qrQualifyForMedicare.records[0] as SForce.Contact;

                if (ctQualifyForMedicare.c4g_Qualifies_for_Medicare__c == true && ctQualifyForMedicare.c4g_Qualifies_for_Medicare__cSpecified == true)
                {
                    rbListMedicareYesNo.SelectedIndex = 0;
                }
                else if (ctQualifyForMedicare.c4g_Qualifies_for_Medicare__c == false && ctQualifyForMedicare.c4g_Qualifies_for_Medicare__cSpecified == true)
                {
                    rbListMedicareYesNo.SelectedIndex = 1;
                }

                if (ctQualifyForMedicare.c4g_Qualifies_for_Medicare_A_and_B__c == true && ctQualifyForMedicare.c4g_Qualifies_for_Medicare_A_and_B__cSpecified == true)
                {
                    rbListMedicareAandB.SelectedIndex = 0;
                }
                else if (ctQualifyForMedicare.c4g_Qualifies_for_Medicare_A_and_B__c == false && ctQualifyForMedicare.c4g_Qualifies_for_Medicare_A_and_B__cSpecified == true)
                {
                    rbListMedicareAandB.SelectedIndex = 1;
                }
            }

            if (!IsPostBack)
            {
                String strQueryForMemberPlan = "select c4g_Plan__r.Name from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                               "and cmm_Household_Role__c = 'Head of Household'";

                SForce.QueryResult qrMemberPlan = Sfdcbinding.query(strQueryForMemberPlan);

                if (qrMemberPlan.size > 0)
                {
                    SForce.Contact ctMemberPlan = qrMemberPlan.records[0] as SForce.Contact;

                    if (ctMemberPlan.c4g_Plan__r != null)
                    {
                        switch (ctMemberPlan.c4g_Plan__r.Name)
                        {
                        case "Gold Medi-I":
                            ddlParticipantProgram.SelectedIndex = 1;
                            break;

                        case "Gold Medi-II":
                            ddlParticipantProgram.SelectedIndex = 2;
                            break;

                        case "Gold Plus":
                            ddlParticipantProgram.SelectedIndex = 3;
                            break;

                        case "Gold":
                            ddlParticipantProgram.SelectedIndex = 4;
                            break;

                        case "Silver":
                            ddlParticipantProgram.SelectedIndex = 5;
                            break;

                        case "Bronze":
                            ddlParticipantProgram.SelectedIndex = 6;
                            break;
                        }
                    }
                }

                String strQueryForSpousePlan = "select c4g_Plan__r.Name from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                               "and cmm_Household_Role__c = 'Spouse'";

                SForce.QueryResult qrSpousePlan = Sfdcbinding.query(strQueryForSpousePlan);

                if (qrSpousePlan.size > 0)
                {
                    SForce.Contact ctSpousePlan = qrSpousePlan.records[0] as SForce.Contact;

                    if (ctSpousePlan.c4g_Plan__r != null)
                    {
                        switch (ctSpousePlan.c4g_Plan__r.Name)
                        {
                        case "Gold Medi-I":
                            ddlSpouseProgram.SelectedIndex = 1;
                            break;

                        case "Gold Medi-II":
                            ddlSpouseProgram.SelectedIndex = 2;
                            break;

                        case "Gold Plus":
                            ddlSpouseProgram.SelectedIndex = 3;
                            break;

                        case "Gold":
                            ddlSpouseProgram.SelectedIndex = 4;
                            break;

                        case "Silver":
                            ddlSpouseProgram.SelectedIndex = 5;
                            break;

                        case "Bronze":
                            ddlSpouseProgram.SelectedIndex = 6;
                            break;
                        }
                    }
                }

                String strQueryForChildren = "select c4g_Plan__r.Name from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                             "and cmm_Household_Role__c = 'Child'";

                SForce.QueryResult qrChildrenProgram = Sfdcbinding.query(strQueryForChildren);

                if (qrChildrenProgram.size > 0)
                {
                    SForce.Contact ctChildProgram = qrChildrenProgram.records[0] as SForce.Contact;

                    if (ctChildProgram.c4g_Plan__r != null)
                    {
                        switch (ctChildProgram.c4g_Plan__r.Name)
                        {
                        case "Gold Plus":
                            ddlChildrenProgram.SelectedIndex = 1;
                            break;

                        case "Gold":
                            ddlChildrenProgram.SelectedIndex = 2;
                            break;

                        case "Silver":
                            ddlChildrenProgram.SelectedIndex = 3;
                            break;

                        case "Bronze":
                            ddlChildrenProgram.SelectedIndex = 4;
                            break;
                        }
                    }
                }
            }

            String strQueryForChurchId = "select Id, c4g_Church__c from Contact where cmm_Household__c = '" + strAccountId + "' " +
                                         "and cmm_Household_Role__c = 'Head of Household'";

            SForce.QueryResult qrChurchId = Sfdcbinding.query(strQueryForChurchId);

            if (qrChurchId.size > 0)
            {
                SForce.Contact ctChurchId = qrChurchId.records[0] as SForce.Contact;

                String strQueryForChurchInfo = "select Name, Senior_Pastor_s_Name__c, ShippingAddress, Phone from Account where RecordTypeId = '01237000000R6cjAAC' and " +
                                               "Id = '" + ctChurchId.c4g_Church__c + "'";

                SForce.QueryResult qrAcctChurchInfo = Sfdcbinding.query(strQueryForChurchInfo);

                if (qrAcctChurchInfo.size > 0)
                {
                    SForce.Account acctChurchInfo = qrAcctChurchInfo.records[0] as SForce.Account;

                    txtChurchName.Text          = acctChurchInfo.Name;
                    txtSeniorPastor.Text        = acctChurchInfo.Senior_Pastor_s_Name__c;
                    txtChurchStreetAddress.Text = acctChurchInfo.ShippingAddress.street;
                    txtChurchZipCode.Text       = acctChurchInfo.ShippingAddress.postalCode;
                    ddlChurchState.Items.Add(new ListItem(acctChurchInfo.ShippingAddress.state));
                    ddlChurchState.SelectedIndex = 0;
                    ddlChurchCity.Items.Add(new ListItem(acctChurchInfo.ShippingAddress.city));
                    ddlChurchCity.SelectedIndex = 0;
                    txtChurchPhone.Text         = acctChurchInfo.Phone;
                }
            }

            //SForce.DescribeSObjectResult describeSObjectResult = Sfdcbinding.describeSObject("Contact");

            //// Get the fields
            //if (describeSObjectResult != null)
            //{
            //    SForce.Field[] fields = describeSObjectResult.fields;

            //    for (int i = 0; i < fields.Length; i++)
            //    {
            //        SForce.Field field = fields[i];

            //        if (field.name == "Referral_Source__c")
            //        {
            //            SForce.PicklistEntry[] pickListValues = field.picklistValues;
            //            if (pickListValues != null)
            //            {
            //                //ddlReferredBy.Items.Clear();
            //                foreach (SForce.PicklistEntry pickListEntry in pickListValues)
            //                {
            //                    ddlReferredBy.Items.Add(pickListEntry.value);
            //                }
            //            }
            //        }
            //    }
            //}


            //String strQueryForChurchInfo = "select Name, Senior_Pastor_s_Name__c, ShippingAddress, Phone from Account where RecordTypeId = '01237000000R6cjAAC' and " +
            //                   "Id = '" + strAccountId + "'";

            //String strQueryForChurchInfo = "select Name, Senior_Pastor_s_Name__c, ShippingAddress, Phone from Account where Id = '" + strAccountId + "'";

            if (!IsPostBack)
            {
                ////////////////////////////////////////////////////////////////////////
                // if no spouse is added, then clear the ddlSpouseProgram dropdownlist
                SForce.QueryResult qrSpouse = Sfdcbinding.query(strQueryForSpouse);
                if (qrSpouse.size == 0)
                {
                    ddlSpouseProgram.Items.Clear();
                }

                // if no child is added, then clear the ddlChildProgram dropdownlist
                SForce.QueryResult qrChild = Sfdcbinding.query(strQueryForChildren);
                if (qrChild.size == 0)
                {
                    ddlChildrenProgram.Items.Clear();
                }

                SForce.DescribeSObjectResult describeSObjectResult = Sfdcbinding.describeSObject("Membership__c");

                // Get the fields
                if (describeSObjectResult != null)
                {
                    SForce.Field[] fields = describeSObjectResult.fields;

                    for (int i = 0; i < fields.Length; i++)
                    {
                        SForce.Field field = fields[i];

                        if (field.name == "Referred_By__c")
                        {
                            SForce.PicklistEntry[] pickListValues = field.picklistValues;
                            if (pickListValues != null)
                            {
                                //ddlReferredBy.Items.Clear();
                                foreach (SForce.PicklistEntry pickListEntry in pickListValues)
                                {
                                    ddlReferredBy.Items.Add(pickListEntry.value);
                                }
                            }
                        }
                    }
                }
            }

            //strAccountID = (String)Session["AccountId"];
            //strSpouseId = (String)Session["ContactId"];
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            //Response.Write("<div id='mydiv' >");
            //Response.Write("_");
            //Response.Write("</div>");
            //Response.Write("<script>mydiv.innerText = '';</script>");

            //Response.Write("<script language=javascript>;");
            //Response.Write("var dots = 0;var dotmax = 10;function ShowWait()");
            //Response.Write("{var output; output = 'Loading';dots++;if(dots>=dotmax)dots=1;");
            //Response.Write("for(var x = 0;x < dots;x++){output += '.';}mydiv.innerText =  output;}");
            //Response.Write("function StartShowWait(){mydiv.style.visibility = 'visible'; window.setInterval('ShowWait()', 1000);}");
            //Response.Write("function HideWait(){mydiv.style.visibility = 'hidden';window.clearInterval();}");
            //Response.Write("StartShowWait();</script>");
            //Response.Flush();
            //Thread.Sleep(10000) ;


            //strEmail = (string)Session["Email"];
            //strLastName = (string)Session["LastName"];
            //strFirstName = (string)Session["FirstName"];

            //txtEmail.Text = strEmail;
            //txtLastName.Text = strLastName;
            //txtFirstName.Text = strFirstName;

            if ((String)Session["Email"] != String.Empty)
            {
                strEmail      = (String)Session["Email"];
                txtEmail.Text = strEmail;
            }
            if ((String)Session["AccountId"] != String.Empty)
            {
                strAccountId = (String)Session["AccountId"];
            }
            else
            {
                String strQueryForAccountIdOnEmail = "select Id from Account where cmm_Email__c = '" + strEmail + "'";

                SForce.QueryResult qrAccountId = Sfdcbinding.query(strQueryForAccountIdOnEmail);

                if (qrAccountId.size > 0)
                {
                    SForce.Account acctHousehold = qrAccountId.records[0] as SForce.Account;

                    strAccountId = acctHousehold.Id;
                }
            }

            //if (!IsPostBack)
            //{


            if ((String)Session["LastName"] != null && (String)Session["FirstName"] != null)
            {
                if ((String)Session["LastName"] != String.Empty)
                {
                    txtLastName.Text = (String)Session["LastName"];
                }
                if ((String)Session["FirstName"] != String.Empty)
                {
                    txtFirstName.Text = (String)Session["FirstName"];
                }
            }
            //else if ((String)Session["LastName"] == null || (String)Session["FirstName"] == null)
            //{

            if (!IsPostBack)
            {
                String strQueryForPrimaryContactInfo = "select Email, Title, LastName, FirstName, MiddleName, Birthdate, cmm_Gender__c, Social_Security_Number__c, " +
                                                       "Phone, HomePhone, MobilePhone, OtherPhone from Contact " +
                                                       "where cmm_Household__c = '" + strAccountId + "' and cmm_Household_Role__c = 'Head of Household'";


                SForce.QueryResult qrPrimaryContactInfo = Sfdcbinding.query(strQueryForPrimaryContactInfo);

                if (qrPrimaryContactInfo.size > 0)
                {
                    SForce.Contact ctPrimary = qrPrimaryContactInfo.records[0] as SForce.Contact;

                    txtEmail.Text = ctPrimary.Email;
                    switch (ctPrimary.Title)
                    {
                    case "Jr.":
                        ddlTitle.SelectedIndex = 1;
                        break;

                    case "Mr.":
                        ddlTitle.SelectedIndex = 2;
                        break;

                    case "Mrs.":
                        ddlTitle.SelectedIndex = 3;
                        break;

                    case "Ms.":
                        ddlTitle.SelectedIndex = 4;
                        break;
                    }
                    txtLastName.Text   = ctPrimary.LastName;
                    txtFirstName.Text  = ctPrimary.FirstName;
                    txtMiddleName.Text = ctPrimary.MiddleName;

                    int?nYear  = null;
                    int?nMonth = null;
                    int?nDay   = null;

                    if (ctPrimary.Birthdate != null)
                    {
                        nYear  = ctPrimary.Birthdate.Value.Year;
                        nMonth = ctPrimary.Birthdate.Value.Month;
                        nDay   = ctPrimary.Birthdate.Value.Day;
                        DateTime dtPrimaryBirthdate = new DateTime((int)nYear, (int)nMonth, (int)nDay);
                        txtDateOfBirth.Text = dtPrimaryBirthdate.ToString("MM/dd/yyyy");
                    }

                    if (ctPrimary.cmm_Gender__c == "Male")
                    {
                        rbGenderList.SelectedIndex = 0;
                    }
                    else if (ctPrimary.cmm_Gender__c == "Female")
                    {
                        rbGenderList.SelectedIndex = 1;
                    }

                    if (ctPrimary.Social_Security_Number__c != null)
                    {
                        txtSSN.Text     = ctPrimary.Social_Security_Number__c;
                        txtSSN.ReadOnly = true;
                        revSSN.Enabled  = false;
                    }

                    if (ctPrimary.Phone != null)
                    {
                        txtTelephone1.Text = ctPrimary.Phone;
                    }
                    if (ctPrimary.MobilePhone != null)
                    {
                        txtTelephone2.Text = ctPrimary.MobilePhone;
                    }
                    if (ctPrimary.OtherPhone != null)
                    {
                        txtTelephone3.Text = ctPrimary.OtherPhone;
                    }
                }


                String strQueryForHousehold = "select ShippingAddress from Account where Id = '" + strAccountId + "' and cmm_Email__c = '" + strEmail + "'";

                SForce.QueryResult qrHousehold = Sfdcbinding.query(strQueryForHousehold);

                if (qrHousehold.size > 0)
                {
                    SForce.Account acctHousehold = qrHousehold.records[0] as SForce.Account;

                    if (acctHousehold.ShippingAddress != null)
                    {
                        txtAddress.Text = acctHousehold.ShippingAddress.street;
                        txtZipCode.Text = acctHousehold.ShippingAddress.postalCode;

                        InitializeStateNames();
                        ddlState.SelectedValue = acctHousehold.ShippingAddress.state;

                        String strConnectionString = @"Data Source=10.1.10.79; Port=3306; Database=cmmworld_admin; User ID=Hj_p007; Password='******'";
                        String strQueryForCityName = "select distinct name, state_code from city where state_code = '" + ddlState.SelectedValue.ToString() + "' order by name";

                        MySqlConnection  conn        = new MySqlConnection(strConnectionString);
                        MySqlCommand     cmdCityName = new MySqlCommand(strQueryForCityName, conn);
                        DataSet          dsCity      = new DataSet();
                        MySqlDataAdapter da          = new MySqlDataAdapter(cmdCityName);

                        da.Fill(dsCity);
                        ddlCity.DataSource     = dsCity.Tables[0];
                        ddlCity.DataTextField  = "name";
                        ddlCity.DataValueField = "name";
                        ddlCity.DataBind();

                        ddlCity.SelectedValue = acctHousehold.ShippingAddress.city;
                    }
                }

                if (qrPrimaryContactInfo.size == 0 && qrHousehold.size == 0)
                {
                    //if (!IsPostBack)
                    //{

                    //calexDateOfBirth.DefaultView = AjaxControlToolkit.CalendarDefaultView.Years;

                    // This section is commented out, is needed for production code
                    txtSSN.ReadOnly = false;
                    revSSN.Enabled  = true;
                    //revSSN.EnableClientScript = true;

                    String strQueryForStateName = "select distinct name, state_code from state order by name";
                    String strConnectionString  = @"Data Source=10.1.10.79; Port=3306; Database=cmmworld_admin; User ID=Hj_p007; Password='******'";

                    MySqlConnection connState = new MySqlConnection(strConnectionString);
                    MySqlCommand    cmdState  = new MySqlCommand(strQueryForStateName, connState);

                    DataSet dsState = new DataSet();

                    MySqlDataAdapter da = new MySqlDataAdapter(cmdState);

                    da.Fill(dsState);

                    ddlState.DataSource     = dsState.Tables[0];
                    ddlState.DataTextField  = "name";
                    ddlState.DataValueField = "state_code";
                    ddlState.DataBind();
                    ddlState.Items.Insert(0, new ListItem(String.Empty, String.Empty));
                    ddlState.SelectedIndex = 0;
                }
                LoadPrimarySDAInfo();
            }
        }
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            string strId = (string)Session["CurrentId"];

            String[] ids = new String[] { strId };

            SForce.SforceService sfdcbinding = new SForce.SforceService();

            SForce.LoginResult login_result = null;

            login_result    = sfdcbinding.login(strUserName, strPasswd);
            sfdcbinding.Url = login_result.serverUrl;
            sfdcbinding.SessionHeaderValue           = new SForce.SessionHeader();
            sfdcbinding.SessionHeaderValue.sessionId = login_result.sessionId;

            SForce.DeleteResult[] deleteResults = sfdcbinding.delete(ids);
            SForce.DeleteResult   deleteResult  = deleteResults[0];

            if (deleteResult.success)
            {
                lblErrorMessage.Text = "The record id: " + deleteResult.id + " is deleted successfully.";
                int nCurrentIndex = (int)Session["CurrentIndex"];

                nCurrentIndex--;
                //contact = (SForce.Contact)queryResult.records[nCurrentIndex];

                Sfdcbinding                    = new SForce.SforceService();
                CurrentLoginResult             = Sfdcbinding.login(strUserName, strPasswd);
                Sfdcbinding.Url                = CurrentLoginResult.serverUrl;
                Sfdcbinding.SessionHeaderValue = new SForce.SessionHeader();

                Sfdcbinding.SessionHeaderValue.sessionId = CurrentLoginResult.sessionId;
                strQuerySelectFromContact = "select Id, FirstName, LastName, MailingAddress, Email, MobilePhone, Phone from Contact order by LastName nulls last";
                queryResult = Sfdcbinding.query(strQuerySelectFromContact);

                nTotalRecord = queryResult.size - 1;

                contact = (SForce.Contact)queryResult.records[nCurrentIndex];

                txtFirstName.Text = contact.FirstName;
                txtLastName.Text  = contact.LastName;

                if (contact.MailingAddress != null)
                {
                    txtStreetAddress.Text = contact.MailingAddress.street;
                    txtCity.Text          = contact.MailingAddress.city;
                    txtState.Text         = contact.MailingAddress.state;
                    txtZip.Text           = contact.MailingAddress.postalCode;
                }
                else if (contact.MailingAddress == null)
                {
                    txtStreetAddress.Text = "";
                    txtCity.Text          = "";
                    txtState.Text         = "";
                    txtZip.Text           = "";
                }

                txtMobilePhone.Text     = contact.MobilePhone;
                txtPhone.Text           = contact.Phone;
                txtEmail.Text           = contact.Email;
                Session["CurrentIndex"] = nCurrentIndex;

                if (nCurrentIndex == 0)
                {
                    btnPrev.Enabled  = false;
                    btnFirst.Enabled = false;
                }

                strId = contact.Id;
                Session["CurrentId"] = strId;
            }
            else
            {
                lblErrorMessage.Text = "Error: " + deleteResult.errors[0].message;
            }
        }
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (txtLastName.Text == null)
            {
                lblErrorMessage.Text = "Error: You must enter your last name";
            }
            else
            {
                SForce.Contact sfdcContact = new SForce.Contact();
                sfdcContact.FirstName = txtFirstName.Text;
                sfdcContact.LastName  = txtLastName.Text;

                sfdcContact.MailingStreet     = txtStreetAddress.Text;
                sfdcContact.MailingCity       = txtCity.Text;
                sfdcContact.MailingState      = txtState.Text;
                sfdcContact.MailingPostalCode = txtZip.Text;
                sfdcContact.MobilePhone       = txtMobilePhone.Text;
                sfdcContact.Phone             = txtPhone.Text;
                sfdcContact.Email             = txtEmail.Text;

                SForce.SforceService sfdcbinding  = new SForce.SforceService();
                SForce.LoginResult   login_result = null;

                login_result    = sfdcbinding.login(strUserName, strPasswd);
                sfdcbinding.Url = login_result.serverUrl;
                sfdcbinding.SessionHeaderValue           = new SForce.SessionHeader();
                sfdcbinding.SessionHeaderValue.sessionId = login_result.sessionId;
                SForce.SaveResult[] saveResults = sfdcbinding.create(new SForce.sObject[] { sfdcContact });

                if (saveResults[0].success)
                {
                    lblErrorMessage.Text    = "You added a new record successfully.";
                    nCurrentIndex           = nTotalRecord;
                    Session["CurrentIndex"] = nCurrentIndex;
                    nTotalRecord++;

                    Sfdcbinding                    = new SForce.SforceService();
                    CurrentLoginResult             = Sfdcbinding.login(strUserName, strPasswd);
                    Sfdcbinding.Url                = CurrentLoginResult.serverUrl;
                    Sfdcbinding.SessionHeaderValue = new SForce.SessionHeader();

                    Sfdcbinding.SessionHeaderValue.sessionId = CurrentLoginResult.sessionId;
                    strQuerySelectFromContact = "select Id, FirstName, LastName, MailingAddress, Email, MobilePhone, Phone from Contact order by LastName nulls last";
                    queryResult = Sfdcbinding.query(strQuerySelectFromContact);

                    nTotalRecord = queryResult.size - 1;
                }
                else
                {
                    lblErrorMessage.Text = saveResults[0].errors[0].message;
                }

                btnFirst.Enabled = true;
                btnPrev.Enabled  = true;
                btnNext.Enabled  = true;
                btnLast.Enabled  = true;

                btnSave.Enabled   = false;
                btnCancel.Enabled = false;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            strUserName = "******";
            strPasswd   = "speed5of5light5";

            if (!IsPostBack)
            {
                nCurrentIndex     = 0;
                nTotalRecord      = 0;
                nCurrentIndexTask = 0;
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls;

                //Sfdcbinding = new SForce.SforceService();
                //CurrentLoginResult = Sfdcbinding.login(strUserName, strPasswd);
                //Sfdcbinding.Url = CurrentLoginResult.serverUrl;
                //Sfdcbinding.SessionHeaderValue = new SForce.SessionHeader();

                //Sfdcbinding.SessionHeaderValue.sessionId = CurrentLoginResult.sessionId;
                //strQuery = "select Id, FirstName, LastName, MailingAddress, Email, MobilePhone, Phone from Contact order by LastName nulls last";
                //queryResult = Sfdcbinding.query(strQuery);

                //nTotalRecord = queryResult.size - 1;

                btnCreateNewContact.Enabled = false;
                btnSave.Enabled             = false;
                btnEdit.Enabled             = false;
                btnUpdate.Enabled           = false;
                btnCancel.Enabled           = false;
                btnDelete.Enabled           = false;

                txtFirstName.ReadOnly     = true;
                txtLastName.ReadOnly      = true;
                txtStreetAddress.ReadOnly = true;
                txtCity.ReadOnly          = true;
                txtState.ReadOnly         = true;
                txtZip.ReadOnly           = true;
                txtPhone.ReadOnly         = true;
                txtMobilePhone.ReadOnly   = true;
                txtEmail.ReadOnly         = true;

                //strQuerySelectFromContact = "select Id, FirstName, LastName, MailingAddress, Email, MobilePhone, Phone from Contact order by LastName nulls last";
                //strQuerySelectFromMembership = "select Id, Membership.c4g_Membership_Status__c, c4g_Number_of_Gold_Medi_Members__c from Membership nulls last";
                //strQuerySelectFromContactIncludeMembership = "select Contact.Id, Contact.FirstName, Contact.LastName " +
                //                                                "(select Membership.c4g_Membership_Status__c, c4g_Number_of_Gold_Medi_Members__c, " +
                //                                                "c4g_Number_of_Gold_Members__c, c4g_Number_of_Gold_Plus_Members__c, " +
                //                                                "Number_of_Members_Units__c, Paying_Member__c, " +
                //                                                "Registration_Date__c, c4g_Start_Date__c " +
                //                                                "from Membership) from Contact " +
                //                                                "where Contact.Id in (select Membership.ContactId from Membership) nulls last";
            }

            //strQuerySelectFromContact = "select Id, c4g_Membership__c, Individual_ID__c, FirstName, LastName, MailingAddress, Email, MobilePhone, Phone from Contact order by LastName nulls last";


            strQueryMembershipIdInContact = "select Contact.c4g_Membership__c from Contact order by LastName nulls last";



            strQuerySelectFromMembership = "select Id, Name, c4g_Membership_Status__c from Membership__c";



            /// This is the current working inner join version
            strQueryContactInnerJoinMembership = "select Id, Individual_ID__c, FirstName, LastName, MailingAddress, Email, MobilePhone, Phone, " +
                                                 "(select Name, Id from Memberships__r) from Contact " +
                                                 "where Contact.c4g_Membership__c in (select Membership__c.Id from Membership__c) " +
                                                 "order by Contact.LastName, Contact.FirstName nulls last";


            // SELECT Name, (SELECT Name FROM Job_Applications__r) FROM Position__c

            // This is the Left Outer Join version.
            strQueryContactLeftOuterJoinMembership = "select Id, Individual_ID__c, FirstName, LastName, MailingAddress, Email, MobilePhone, Phone, " +
                                                     "c4g_Membership__r.Name, c4g_Membership__r.Id from Contact " +
                                                     "order by Contact.LastName, Contact.FirstName nulls last";

            strQueryTask = "select Id, Description from Task";

            Sfdcbinding                    = new SForce.SforceService();
            CurrentLoginResult             = Sfdcbinding.login(strUserName, strPasswd);
            Sfdcbinding.Url                = CurrentLoginResult.serverUrl;
            Sfdcbinding.SessionHeaderValue = new SForce.SessionHeader();

            Sfdcbinding.SessionHeaderValue.sessionId = CurrentLoginResult.sessionId;
            //queryResult = Sfdcbinding.query(strQuerySelectFromContact);

            // This is Contact Inner Join Membership
            //queryResult = Sfdcbinding.query(strQueryContactInnerJoinMembership);

            // This is Contact Outer Join Membership

            queryResultTask = Sfdcbinding.query(strQueryTask);
            queryResult     = Sfdcbinding.query(strQueryContactLeftOuterJoinMembership);

            nTotalRecord = queryResult.size - 1;

            ////////////////////////////////////////////////////////////////////////////////
            // Testing for select from membership
            //SForce.SforceService sfdcbindingMembership = new SForce.SforceService();
            //SForce.LoginResult LoginResult = sfdcbindingMembership.login(strUserName, strPasswd);
            //sfdcbindingMembership.Url = LoginResult.serverUrl;
            //sfdcbindingMembership.SessionHeaderValue = new SForce.SessionHeader();

            //sfdcbindingMembership.SessionHeaderValue.sessionId = LoginResult.sessionId;
            //SForce.QueryResult QueryResultMembership = sfdcbindingMembership.query(strQuerySelectFromMembership);
        }
        protected void btnLoad_Click(object sender, EventArgs e)
        {
            //Sfdcbinding = new SForce.SforceService();
            //CurrentLoginResult = Sfdcbinding.login(strUserName, strPasswd);
            //Sfdcbinding.Url = CurrentLoginResult.serverUrl;
            //Sfdcbinding.SessionHeaderValue = new SForce.SessionHeader();

            //Sfdcbinding.SessionHeaderValue.sessionId = CurrentLoginResult.sessionId;
            //strQuerySelectFromContact = "select Id, FirstName, LastName, MailingAddress, Email, MobilePhone, Phone from Contact order by LastName nulls last";
            //queryResult = Sfdcbinding.query(strQuerySelectFromContact);

            //nTotalRecord = queryResult.size - 1;

            if (queryResult.size > 0)
            {
                contact = (SForce.Contact)queryResult.records[nCurrentIndex];

                txtIndividualId.Text = contact.Individual_ID__c;
                txtId.Text           = contact.Id;
                //SForce.Membership__c member = (SForce.Membership__c) contact.Memberships__r.records[0];

                if (contact.c4g_Membership__r != null)
                {
                    txtMembershipId.Text            = contact.c4g_Membership__r.Id;
                    txtMembershipNameInContact.Text = contact.c4g_Membership__r.Name;
                }
                else
                {
                    txtMembershipId.Text            = "";
                    txtMembershipNameInContact.Text = "";
                }


                //if (contact.c4g_Membership__r != null)
                //{
                //    txtMembershipId.Text = contact.c4g_Membership__r.Id;
                //    txtMembershipInContact.Text = contact.c4g_Membership__r.Name;
                //}
                //else if (contact.c4g_Membership__r == null)
                //{
                //    txtMembershipId.Text = "";
                //    txtMembershipInContact.Text = "";
                //}


                //txtMembershipId.Text = member.Id;
                //txtMembershipNameInContact.Text = member.Name; ;
                txtFirstName.Text = contact.FirstName;
                txtLastName.Text  = contact.LastName;

                if (contact.MailingAddress != null)
                {
                    txtStreetAddress.Text = contact.MailingAddress.street;
                    txtCity.Text          = contact.MailingAddress.city;
                    txtState.Text         = contact.MailingAddress.state;
                    txtZip.Text           = contact.MailingAddress.postalCode;
                }
                else if (contact.MailingAddress == null)
                {
                    txtStreetAddress.Text = "";
                    txtCity.Text          = "";
                    txtState.Text         = "";
                    txtZip.Text           = "";
                }
                txtMobilePhone.Text = contact.MobilePhone;
                txtPhone.Text       = contact.Phone;
                txtEmail.Text       = contact.Email;
            }

            btnFirst.Enabled            = false;
            btnPrev.Enabled             = false;
            btnCreateNewContact.Enabled = true;
            btnEdit.Enabled             = true;
            btnDelete.Enabled           = true;
            lblErrorMessage.Text        = "";

            ////////////////////////////////////////////////////////////////////////////////
            // Testing for select from membership
            SForce.SforceService sfdcbindingMembership = new SForce.SforceService();
            SForce.LoginResult   LoginResult           = sfdcbindingMembership.login(strUserName, strPasswd);
            sfdcbindingMembership.Url = LoginResult.serverUrl;
            sfdcbindingMembership.SessionHeaderValue = new SForce.SessionHeader();

            sfdcbindingMembership.SessionHeaderValue.sessionId = LoginResult.sessionId;
            queryResultMembership = sfdcbindingMembership.query(strQuerySelectFromMembership);


            //strQueryMembershipIdInContact

            /////////////////////////////////////
            // Testing for Membership field in Contact
            SForce.QueryResult queryMembershipInContact = sfdcbindingMembership.query(strQueryMembershipIdInContact);
            //SForce.QueryResult queryContactInnerJoinMembership = sfdcbindingMembership.query(strQueryContactInnerJoinMembership);

            if (queryMembershipInContact.size > 0)
            {
                SForce.Contact contactMembership = (SForce.Contact)queryMembershipInContact.records[0];

                txtMembershipInContact.Text = contactMembership.c4g_Membership__c;
            }

            if (queryResultMembership.size > 0)
            {
                SForce.Membership__c membership = (SForce.Membership__c)queryResultMembership.records[0];
                //SForce.Contact contact = (SForce.Contact)queryResultMembership.records[0];

                txtContactId.Text        = membership.Id;
                txtMembershipName.Text   = membership.Name;
                txtMembershipStatus.Text = membership.c4g_Membership_Status__c;

                //txtContactId.Text = contact.Id;
                //txtMembershipName.Text = contact.Name; ;  //membership.Name;
                //txtMembershipStatus.Text = contact.c4g_Membership_Status__c;   //membership.c4g_Membership_Status__c;
                int nMemberIndex = 0;
                Session["MemberIndex"] = nMemberIndex;
            }

            if (queryResultTask.size > 0)
            {
                SForce.Task task = (SForce.Task)queryResultTask.records[nCurrentIndexTask];

                txtTaskName.Text    = task.Id;
                txtTaskComment.Text = task.Description;

                Session["TaskIndex"] = ++nCurrentIndexTask;

                Session["CurrentTaskId"] = task.Id;
            }
        }