/// <summary> /// Gets the Id of System Email from Xml data /// </summary> /// <param name="node">Xml data cursor model</param> /// <returns>Id of System Email</returns> private static ConstantContactEmail GetEmailFromCampaignResponse(XPathNavigator node) { int result = 0; ConstantContactEmail email = new ConstantContactEmail(); if (node.HasChildren) { node.MoveToFirstChild(); { do { switch (node.Name) { case EmailCampaignXmlNodeEmail: Regex r = new Regex(@"/([a-z]|[A-Z]|-|\d)+$"); email.EmailId = Convert.ToInt16(r.Match(node.GetAttribute("id", string.Empty)).Value.Substring(1)); break; case EmailCampaignXmlNodeEmailAddress: email.EmailAddress = node.Value; break; } } while (node.MoveToNext()); } node.MoveToParent(); } return(email); }
/// <summary> /// Gets the Id of System Email from Xml data /// </summary> /// <param name="node">Xml data cursor model</param> /// <returns>Id of System Email</returns> private static ConstantContactEmail GetEmailFromCampaignResponse(XPathNavigator node) { int result = 0; ConstantContactEmail email = new ConstantContactEmail(); if (node.HasChildren) { node.MoveToFirstChild(); { do { switch (node.Name) { case EmailCampaignXmlNodeEmail: Regex r = new Regex(@"/([a-z]|[A-Z]|-|\d)+$"); email.EmailId = Convert.ToInt16(r.Match(node.GetAttribute("id", string.Empty)).Value.Substring(1)); break; case EmailCampaignXmlNodeEmailAddress: email.EmailAddress = node.Value; break; } } while (node.MoveToNext()); } node.MoveToParent(); } return email; }
/// <summary> /// Get EmailCampaign object from specified Xml data /// </summary> /// <param name="node">Xml data cursor model</param> /// <param name="resolver">Xml namespace resolver</param> /// <returns>EmailCampaign</returns> private static EmailCampaign GetEmailCampaign(XPathNavigator node, IXmlNamespaceResolver resolver) { EmailCampaign emailCampaign = new EmailCampaign(); const string xpathSelect = @"at:content/cc:Campaign"; XPathNodeIterator emailCampaignContentNodes = node.Select(xpathSelect, resolver); while (emailCampaignContentNodes.MoveNext()) { XPathNavigator currentNode = emailCampaignContentNodes.Current; emailCampaign.ID = GetEmailCampaignId(currentNode); if (currentNode.HasChildren) { currentNode.MoveToFirstChild(); do { switch (currentNode.Name) { case EmailCampaignXmlNodeName: emailCampaign.Name = currentNode.Value; break; case EmailCampaignXmlNodeStatus: emailCampaign.State = (CampaignState)Enum.Parse(typeof(CampaignState), currentNode.Value); break; case EmailCampaignXmlNodeDate: emailCampaign.Date = currentNode.ValueAsDateTime; break; case EmailCampaignXmlNodeLastEditDate: emailCampaign.LastEditDate = currentNode.ValueAsDateTime; break; case EmailCampaignXmlNodeNextRunDate: emailCampaign.NextRunDate = currentNode.ValueAsDateTime; break; case EmailCampaignXmlNodeSent: emailCampaign.Sent = currentNode.ValueAsInt; break; case EmailCampaignXmlNodeOpens: emailCampaign.Opens = currentNode.ValueAsInt; break; case EmailCampaignXmlNodeClicks: emailCampaign.Clicks = currentNode.ValueAsInt; break; case EmailCampaignXmlNodeBounces: emailCampaign.Bounces = currentNode.ValueAsInt; break; case EmailCampaignXmlNodeForwards: emailCampaign.Forwards = currentNode.ValueAsInt; break; case EmailCampaignXmlNodeSpamReports: emailCampaign.SpamReports = currentNode.ValueAsInt; break; case EmailCampaignXmlNodeOptOuts: emailCampaign.OptOuts = currentNode.ValueAsInt; break; case EmailCampaignXmlNodeSubject: emailCampaign.Subject = currentNode.Value; break; case EmailCampaignXmlNodeFromName: emailCampaign.FromName = currentNode.Value; break; case EmailCampaignXmlNodeCampaignType: emailCampaign.CampaignType = (CampaignType)Enum.Parse(typeof(CampaignType), currentNode.Value); break; case EmailCampaignXmlNodeViewAsWebpage: emailCampaign.ViewAsWebpage = currentNode.Value.Equals("YES", StringComparison.CurrentCultureIgnoreCase) ? true : false; break; case EmailCampaignXmlNodeViewAsWebpageLinkText: emailCampaign.ViewAsWebpageLinkText = currentNode.Value; break; case EmailCampaignXmlNodeViewAsWebpageText: emailCampaign.ViewAsWebpageText = currentNode.Value; break; case EmailCampaignXmlNodePermissionReminder: emailCampaign.PermissionReminder = currentNode.Value.Equals("YES", StringComparison.CurrentCultureIgnoreCase) ? true : false; break; case EmailCampaignXmlNodePermissionReminderText: emailCampaign.PermissionReminderText = currentNode.Value; break; case EmailCampaignXmlNodeGreetingName: emailCampaign.GreetingName = currentNode.Value; break; case EmailCampaignXmlNodeGreetingSalutation: emailCampaign.GreetingSalutation = currentNode.Value; break; case EmailCampaignXmlNodeGreetingString: emailCampaign.GreetingString = currentNode.Value; break; case EmailCampaignXmlNodeOrganizationName: emailCampaign.OrganizationName = currentNode.Value; break; case EmailCampaignXmlNodeOrganizationAddress1: emailCampaign.OrganizationAddress1 = currentNode.Value; break; case EmailCampaignXmlNodeOrganizationAddress2: emailCampaign.OrganizationAddress2 = currentNode.Value; break; case EmailCampaignXmlNodeOrganizationAddress3: emailCampaign.OrganizationAddress3 = currentNode.Value; break; case EmailCampaignXmlNodeOrganizationCity: emailCampaign.OrganizationCity = currentNode.Value; break; case EmailCampaignXmlNodeOrganizationState: emailCampaign.OrganizationState = currentNode.Value; break; case EmailCampaignXmlNodeOrganizationInternationalState: emailCampaign.OrganizationInternationalState = currentNode.Value; break; case EmailCampaignXmlNodeOrganizationCountry: emailCampaign.OrganizationCountry = currentNode.Value; break; case EmailCampaignXmlNodeOrganizationPostalCode: emailCampaign.OrganizationPostalCode = currentNode.Value; break; case EmailCampaignXmlNodeIncludeForwardEmail: emailCampaign.IncludeForwardEmail = currentNode.Value.Equals("YES", StringComparison.CurrentCultureIgnoreCase) ? true : false; break; case EmailCampaignXmlNodeForwardEmailLinkText: emailCampaign.ForwardEmailLinkText = currentNode.Value; break; case EmailCampaignXmlNodeIncludeSubscribeLink: emailCampaign.IncludeSubscribeLink = currentNode.Value.Equals("YES", StringComparison.CurrentCultureIgnoreCase) ? true : false; break; case EmailCampaignXmlNodeSubscribeLinkText: emailCampaign.SubscribeLinkText = currentNode.Value; break; case EmailCampaignXmlNodeEmailContentFormat: emailCampaign.EmailContentFormat = currentNode.Value; break; case EmailCampaignXmlNodeEmailContent: if (emailCampaign.EmailContentFormat.Equals("HTML")) { emailCampaign.Content = currentNode.Value; } else { emailCampaign.XContent = currentNode.Value; } break; case EmailCampaignXmlNodeEmailTextContent: emailCampaign.TextContent = currentNode.Value; break; case EmailCampaignXmlNodeContactLists: emailCampaign.ContactLists = GetContactListFromCampaignResponse(currentNode); break; case EmailCampaignXmlNodeFromEmail: ConstantContactEmail fromEmail = GetEmailFromCampaignResponse(currentNode); emailCampaign.FromEmailID = fromEmail.EmailId; emailCampaign.FromEmail = fromEmail.EmailAddress; break; case EmailCampaignXmlNodeReplyToEmail: ConstantContactEmail replyToEmail = GetEmailFromCampaignResponse(currentNode); emailCampaign.ReplyToEmailID = replyToEmail.EmailId; emailCampaign.ReplyToEmail = replyToEmail.EmailAddress; break; case EmailCampaignXmlNodeStyleSheet: emailCampaign.StyleSheet = currentNode.Value; break; } } while (currentNode.MoveToNext()); } break; } return(emailCampaign); }