/// <summary> /// Get Contact object with details from specified Xml data /// </summary> /// <param name="node">Xml data cursor model</param> /// <param name="resolver">Xml namespace resolver</param> /// <returns>Contact with details</returns> private static Contact GetContactDetail(XPathNavigator node, IXmlNamespaceResolver resolver) { Contact c = new Contact(); c.Link = GetContactLink(node, resolver); const string xpathSelect = @"at:content/cc:Contact"; XPathNodeIterator contactNodes = node.Select(xpathSelect, resolver); while (contactNodes.MoveNext()) { XPathNavigator currentContactNode = contactNodes.Current; c.Id = GetContactId(currentContactNode); if (currentContactNode.HasChildren) { currentContactNode.MoveToFirstChild(); do { switch (currentContactNode.Name) { case ContactXmlElementAddr1: c.AddressLine1 = currentContactNode.Value; break; case ContactXmlElementAddr2: c.AddressLine2 = currentContactNode.Value; break; case ContactXmlElementAddr3: c.AddressLine3 = currentContactNode.Value; break; case ContactXmlElementCity: c.City = currentContactNode.Value; break; case ContactXmlElementCompanyName: c.CompanyName = currentContactNode.Value; break; case ContactXmlElementConfirmed: c.Confirmed = currentContactNode.ValueAsBoolean; break; case ContactXmlElementCountryCode: c.CountryCode = currentContactNode.Value; break; case ContactXmlElementCountryName: c.CountryName = currentContactNode.Value; break; case ContactXmlElementCustomField1: c.CustomField1 = currentContactNode.Value; break; case ContactXmlElementCustomField2: c.CustomField2 = currentContactNode.Value; break; case ContactXmlElementCustomField3: c.CustomField3 = currentContactNode.Value; break; case ContactXmlElementCustomField4: c.CustomField4 = currentContactNode.Value; break; case ContactXmlElementCustomField5: c.CustomField5 = currentContactNode.Value; break; case ContactXmlElementCustomField6: c.CustomField6 = currentContactNode.Value; break; case ContactXmlElementCustomField7: c.CustomField7 = currentContactNode.Value; break; case ContactXmlElementCustomField8: c.CustomField8 = currentContactNode.Value; break; case ContactXmlElementCustomField9: c.CustomField9 = currentContactNode.Value; break; case ContactXmlElementCustomField10: c.CustomField10 = currentContactNode.Value; break; case ContactXmlElementCustomField11: c.CustomField11 = currentContactNode.Value; break; case ContactXmlElementCustomField12: c.CustomField12 = currentContactNode.Value; break; case ContactXmlElementCustomField13: c.CustomField13 = currentContactNode.Value; break; case ContactXmlElementCustomField14: c.CustomField14 = currentContactNode.Value; break; case ContactXmlElementCustomField15: c.CustomField15 = currentContactNode.Value; break; case ContactXmlElementEmailAddresss: c.EmailAddress = currentContactNode.Value; break; case ContactXmlElementEmailType: c.EmailType = GetEmailType(currentContactNode.Value); break; case ContactXmlElementFirstName: c.FirstName = currentContactNode.Value; break; case ContactXmlElementHomePhone: c.HomePhone = currentContactNode.Value; break; case ContactXmlElementInsertTime: c.InsertTime = currentContactNode.ValueAsDateTime; break; case ContactXmlElementJobTitle: c.JobTitle = currentContactNode.Value; break; case ContactXmlElementLastName: c.LastName = currentContactNode.Value; break; case ContactXmlElementLastUpdateTime: c.LastUpdateTime = currentContactNode.ValueAsDateTime; break; case ContactXmlElementMiddleName: c.MiddleName = currentContactNode.Value; break; case ContactXmlElementName: c.Name = currentContactNode.Value; break; case ContactXmlElementNote: c.Note = currentContactNode.Value; break; case ContactXmlElementPostalCode: c.PostalCode = currentContactNode.Value; break; case ContactXmlElementStateCode: c.StateCode = currentContactNode.Value; break; case ContactXmlElementStateName: c.StateName = currentContactNode.Value; break; case ContactXmlElementStatus: c.Status = GetContactStatus(currentContactNode.Value); break; case ContactXmlElementSubPostalCode: c.SubPostalCode = currentContactNode.Value; break; case ContactXmlElementWorkPhone: c.WorkPhone = currentContactNode.Value; break; case ContactXmlElementContactLists: if (currentContactNode.HasChildren) { // loop through all the Contact List XPathNavigator contactListsNode = currentContactNode.Clone(); XPathNodeIterator lists = contactListsNode.Select("//cc:ContactList", resolver); while (lists.MoveNext()) { // get current Contact List XPathNavigator list = lists.Current; ContactList contactList = new ContactList(); // get the id of Contact List contactList.Id = GetContactListId(list); ContactOptInList optInList = new ContactOptInList(); optInList.ContactList = contactList; if (list.HasChildren) { list.MoveToFirstChild(); do { switch (list.Name) { case ContactXmlElementOptInSource: optInList.OptInSource = GetOptSource(list.Value); break; case ContactXmlElementOptInTime: optInList.OptInTime = list.ValueAsDateTime; break; } } while (list.MoveToNext()); } // add the Contact List to current Contact c.ContactLists.Add(optInList); } } break; } } while (currentContactNode.MoveToNext()); } break; } return c; }
/// <summary> /// Get Contact information from the form /// </summary> /// <returns></returns> private Contact GetContactInformation() { Contact contact = new Contact(); contact.Id = (string) Session["ContactIdToUpdate"]; contact.Link = (string)Session["ContactEditLink"]; contact.Status = ContactStatus; #region contact information contact.EmailAddress = Server.HtmlEncode(txtEmail.Text.Trim()); contact.FirstName = Server.HtmlEncode(txtFirst.Text.Trim()); contact.MiddleName = Server.HtmlEncode(txtMiddle.Text.Trim()); contact.LastName = Server.HtmlEncode(txtLast.Text.Trim()); contact.HomePhone = Server.HtmlEncode(txtHome.Text.Trim()); contact.AddressLine1 = Server.HtmlEncode(txtAddr1.Text.Trim()); contact.AddressLine2 = Server.HtmlEncode(txtAddr2.Text.Trim()); contact.AddressLine3 = Server.HtmlEncode(txtAddr3.Text.Trim()); contact.City = Server.HtmlEncode(txtCity.Text.Trim()); contact.StateCode = string.IsNullOrEmpty(dropDownState.SelectedValue) ? string.Empty : dropDownState.SelectedValue; contact.StateName = string.IsNullOrEmpty(dropDownState.SelectedValue) ? Server.HtmlEncode(txtOtherState.Text.Trim()) : dropDownState.SelectedItem.Text; contact.PostalCode = Server.HtmlEncode(txtZip.Text.Trim()); contact.SubPostalCode = Server.HtmlEncode(txtSubZip.Text.Trim()); contact.CountryName = dropDownCountry.SelectedItem.Text; contact.CountryCode = dropDownCountry.SelectedValue; #endregion #region contact lists // loop throught all the checkbox controls foreach (ListItem item in chkListContactLists.Items) { if (!item.Selected) continue; ContactOptInList contactOptInList = new ContactOptInList(); contactOptInList.ContactList = new ContactList(item.Value); contact.ContactLists.Add(contactOptInList); } #endregion return contact; }
/// <summary> /// Get Contact information from the form /// </summary> /// <returns></returns> private Contact GetContactInformation() { Contact contact = new Contact(); contact.Id = (string) Session["ContactIdToUpdate"]; contact.Link = (string)Session["ContactEditLink"]; contact.Status = ContactStatus; #region contact information contact.EmailAddress = Server.HtmlEncode(txtEmail.Text.Trim()); contact.FirstName = Server.HtmlEncode(txtFirst.Text.Trim()); contact.MiddleName = Server.HtmlEncode(txtMiddle.Text.Trim()); contact.LastName = Server.HtmlEncode(txtLast.Text.Trim()); contact.HomePhone = Server.HtmlEncode(txtHome.Text.Trim()); contact.AddressLine1 = Server.HtmlEncode(txtAddr1.Text.Trim()); contact.AddressLine2 = Server.HtmlEncode(txtAddr2.Text.Trim()); contact.AddressLine3 = Server.HtmlEncode(txtAddr3.Text.Trim()); contact.City = Server.HtmlEncode(txtCity.Text.Trim()); contact.StateCode = string.IsNullOrEmpty(dropDownState.SelectedValue) ? string.Empty : dropDownState.SelectedValue; contact.StateName = string.IsNullOrEmpty(dropDownState.SelectedValue) ? Server.HtmlEncode(txtOtherState.Text.Trim()) : dropDownState.SelectedItem.Text; contact.PostalCode = Server.HtmlEncode(txtZip.Text.Trim()); contact.SubPostalCode = Server.HtmlEncode(txtSubZip.Text.Trim()); contact.CountryName = dropDownCountry.SelectedItem.Text; contact.CountryCode = dropDownCountry.SelectedValue; #endregion #region company contact.CompanyName = Server.HtmlEncode(txtComp.Text.Trim()); contact.JobTitle = Server.HtmlEncode(txtJob.Text.Trim()); contact.WorkPhone = Server.HtmlEncode(txtWork.Text.Trim()); contact.EmailType = (ContactEmailType)Enum.Parse(typeof(ContactEmailType), rbtnListEmail.SelectedValue); #endregion #region custom fields contact.CustomField1 = Server.HtmlEncode(txtCust1.Text.Trim()); contact.CustomField2 = Server.HtmlEncode(txtCust2.Text.Trim()); contact.CustomField3 = Server.HtmlEncode(txtCust3.Text.Trim()); contact.CustomField4 = Server.HtmlEncode(txtCust4.Text.Trim()); contact.CustomField5 = Server.HtmlEncode(txtCust5.Text.Trim()); contact.CustomField6 = Server.HtmlEncode(txtCust6.Text.Trim()); contact.CustomField7 = Server.HtmlEncode(txtCust7.Text.Trim()); contact.CustomField8 = Server.HtmlEncode(txtCust8.Text.Trim()); contact.CustomField9 = Server.HtmlEncode(txtCust9.Text.Trim()); contact.CustomField10 = Server.HtmlEncode(txtCust10.Text.Trim()); contact.CustomField11 = Server.HtmlEncode(txtCust11.Text.Trim()); contact.CustomField12 = Server.HtmlEncode(txtCust12.Text.Trim()); contact.CustomField13 = Server.HtmlEncode(txtCust13.Text.Trim()); contact.CustomField14 = Server.HtmlEncode(txtCust14.Text.Trim()); contact.CustomField15 = Server.HtmlEncode(txtCust15.Text.Trim()); #endregion #region Notes contact.Note = Server.HtmlEncode(txtNotes.Text.Trim()); #endregion #region contact lists // loop throught all the checkbox controls foreach (ListItem item in chkListContactLists.Items) { if (!item.Selected) continue; ContactOptInList contactOptInList = new ContactOptInList(); contactOptInList.ContactList = new ContactList(item.Value); contact.ContactLists.Add(contactOptInList); } #endregion return contact; }