/// <summary> /// Makes a call to the StormPost API to retrieve the Recipient record, by uniqueId /// </summary> /// <param name="uniqueId">StormPost Unique ID</param> /// <returns></returns> private NewsletterSubscriber retrieveSubscriber(int uniqueId) { NewsletterSubscriber output; Dictionary <string, string> demographics; MemberServices.stormpost.api.Recipient recipient; stormpost.api.SoapRequestProcessorService api; stormpost.api.ListSubscription[] subscriptions; output = new NewsletterSubscriber(); output.Subscriptions = new List <Newsletter>(); // Retrieve the StormPost Subscriber info api = new MemberServices.stormpost.api.SoapRequestProcessorService(); api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; recipient = api.getRecipient(uniqueId); // Retrieve the Subscription data output.UniqueID = recipient.recipID.Value; output.EmailAddress = recipient.address; subscriptions = api.getRecipientSubscriptions(recipient.recipID.Value); subscriptions = subscriptions.Where(s => s.subscribed) .ToArray(); // Populate the subscriptions collection on the output object foreach (stormpost.api.ListSubscription sub in subscriptions) { output.Subscriptions.Add(new Newsletter() { ListId = sub.listID.Value, Name = sub.listTitle }); } // Retrive Demographics; StormPost refers to custom demographic fields by _Custom01, _Custom02, etc. demographics = recipient.GetDemographics(); output.First_Name = demographics.Keys.Contains("FirstName") ? demographics["FirstName"] : ""; output.Last_Name = demographics.Keys.Contains("LastName") ? demographics["LastName"] : ""; output.Member_Type = demographics.Keys.Contains("_Custom01") ? demographics["_Custom01"] : ""; output.Member_Source = demographics.Keys.Contains("_Custom02") ? demographics["_Custom02"] : ""; // Parse Expire date from the value in _Custom03 string temp = demographics.Keys.Contains("_Custom03") ? demographics["_Custom03"] : ""; DateTime tmpDate = new DateTime(); output.Member_Expire_Date = DateTime.TryParse(temp, out tmpDate) ? (DateTime?)tmpDate : (DateTime?)null; return(output); }
public bool UpdateSubscription(NewsletterSubscriber subscriber, int[] listIds, bool subscribe) { stormpost.api.SoapRequestProcessorService api; int listId = 0; try { api = new MemberServices.stormpost.api.SoapRequestProcessorService(); api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; for (int i = 0; i < listIds.Length; i++) { listId = listIds[i]; if (subscribe) { api.subscribeToList(listId, subscriber.UniqueID, true, "", 0); } else { api.unsubscribeFromList(listId, subscriber.UniqueID, 0); } } } catch (Exception ex) { string argString = String.Format("cusID: {0}; uniqueId: {1}; listId {2}; subscribe: {3}\r\n\r\n", subscriber.CusID, subscriber.UniqueID, listId.ToString(), subscribe.ToString()); new SupportClasses.Mailer().SendEmail(ConfigurationManager.AppSettings["mailserviceuser"], ConfigurationManager.AppSettings["mailservicepwd"], "NewsletterService ERROR - " + ex.GetType().Name, "*****@*****.**", ConfigurationManager.AppSettings["newsletter-erroremailto"], "", "", argString + ex.ToString(), false, ConfigurationManager.AppSettings["erroremailsmtpserver"]); throw; } return(true); }
public List <Newsletter> GetAllNewsletters() { List <Newsletter> output; stormpost.api.SoapRequestProcessorService api; stormpost.api.List[] lists; try { api = new MemberServices.stormpost.api.SoapRequestProcessorService(); api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; output = new List <Newsletter>(); lists = api.getLists(new stormpost.api.List()); foreach (stormpost.api.List list in lists) { output.Add(new Newsletter() { ListId = list.listID.Value, Name = list.listTitle }); } return(output); } catch (Exception ex) { new SupportClasses.Mailer().SendEmail(ConfigurationManager.AppSettings["mailserviceuser"], ConfigurationManager.AppSettings["mailservicepwd"], "NewsletterService ERROR - " + ex.GetType().Name, "*****@*****.**", ConfigurationManager.AppSettings["newsletter-erroremailto"], "", "", ex.ToString(), false, ConfigurationManager.AppSettings["erroremailsmtpserver"]); throw; } }
public bool UpdateSubscriber(NewsletterSubscriber subscriber) { stormpost.api.SoapRequestProcessorService api; stormpost.api.Recipient recipient; try { api = new MemberServices.stormpost.api.SoapRequestProcessorService(); api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; recipient = api.getRecipient(subscriber.UniqueID); recipient.address = subscriber.EmailAddress; recipient.SetDemographic("FirstName", subscriber.First_Name); recipient.SetDemographic("LastName", subscriber.Last_Name); recipient.SetDemographic("_Custom01", subscriber.Member_Type); recipient.SetDemographic("_Custom02", subscriber.Member_Source); recipient.SetDemographic("_Custom03", subscriber.Member_Expire_Date.GetValueOrDefault(new DateTime(1900, 1, 1)).ToString("yyyy-MM-dd")); api.updateRecipient(recipient); return(true); } catch (Exception ex) { string argString = String.Format("Unique Id: {0}\r\n\r\n", subscriber.UniqueID.ToString()); new SupportClasses.Mailer().SendEmail(ConfigurationManager.AppSettings["mailserviceuser"], ConfigurationManager.AppSettings["mailservicepwd"], "NewsletterService ERROR - " + ex.GetType().Name, "*****@*****.**", ConfigurationManager.AppSettings["newsletter-erroremailto"], "", "", argString + ex.ToString(), false, ConfigurationManager.AppSettings["erroremailsmtpserver"]); throw; } }
public NewsletterResponseObject CreateSubscriber(string encCusId, ushort position) { stormpost.api.SoapRequestProcessorService api; stormpost.api.Recipient recipient, existing; HarperLINQ.AHT_MainDataContext dc; HarperLINQ.tbl_Customer customer; HarperLINQ.tbl_NetMembership maxMembership; HarperLINQ.tbl_MembershipType maxMembershipType; HarperLINQ.tbl_StormPostRecipient newRecipient; NewsletterResponseObject response; int cusID = 0; try { cusID = Int32.Parse(HarperCRYPTO.Cryptography.DeHash(encCusId, true)); api = new MemberServices.stormpost.api.SoapRequestProcessorService(); dc = new HarperLINQ.AHT_MainDataContext(ConfigurationManager.ConnectionStrings["AHT_MainConnectionString"].ConnectionString); response = new NewsletterResponseObject(); response.Success = false; response.PrimarySubscriber = new NewsletterSubscriber(); // Set the authentication on the SOAP object api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; // Get the customer and his associated NetMembership record customer = dc.tbl_Customers.Where(c => c.cusID == cusID) .Single(); try { maxMembership = dc.tbl_NetMemberships.Where(nm => nm.cusID == customer.cusID) .OrderByDescending(nm => nm.nmbDateEnd) .First(); } catch { maxMembership = null; } try { maxMembershipType = dc.tbl_MembershipTypes.Where(mt => mt.mtyCode == maxMembership.mtyCode) .Single(); } catch { maxMembershipType = null; } // "Lazy" coding: look for an excuse not to do any work... if (position != 1 && position != 2) { throw new ApplicationException("Postion specified is unsupported. Currently this operation only selects position 1 or 2."); } else if (position == 1 && customer.cusStormPostPrimaryID.HasValue && customer.cusStormPostPrimaryID > 0) { throw new ApplicationException(String.Format("The customer selected already has a StormPulse account ({0})", customer.cusStormPostPrimaryID)); } else if (position == 2 && customer.cusStormPostSecondaryID.HasValue && customer.cusStormPostSecondaryID > 0) { throw new ApplicationException(String.Format("The customer selected already has a StormPulse account ({0})", customer.cusStormPostSecondaryID)); } // Set up the recipient object recipient = new MemberServices.stormpost.api.Recipient(); recipient.dateJoined = DateTime.Now; recipient.externalID = customer.cusCustNum; recipient.SetDemographic("FirstName", customer.cusFirstName); recipient.SetDemographic("LastName", customer.cusLastName); recipient.SetDemographic("_Custom01", (maxMembershipType != null) ? maxMembershipType.mtyName : ""); recipient.SetDemographic("_Custom02", customer.csoCode); recipient.SetDemographic("_Custom03", (maxMembership != null) ? maxMembership.nmbDateEnd.ToShortDateString() : ""); recipient.SetDemographic("_Custom04", position == 1 ? "True" : "False"); if (position == 1) { recipient.address = customer.cusEmail; } else if (position == 2) { recipient.address = customer.cusSecondEmail; } // Check whether the recipient already exists at stormpost existing = null; try { existing = api.getRecipientByAddress(recipient.address); } catch { } if (existing != null) { if (!String.IsNullOrEmpty(existing.address) && existing.recipID.HasValue) { return(updateCustomerStormPostId(cusID, position, existing.recipID.Value)); } } // Make the createRecipient call, and update Nucleus with the new value response.PrimarySubscriber.UniqueID = api.createRecipientAndReturnRecipID(recipient); if (position == 1) { customer.cusStormPostPrimaryID = response.PrimarySubscriber.UniqueID; } else if (position == 2) { customer.cusStormPostSecondaryID = response.PrimarySubscriber.UniqueID; } // Create the StormPostRecipient object DateTime tmpDateTime = new DateTime(); newRecipient = new HarperLINQ.tbl_StormPostRecipient() { sprEmail = recipient.address, sprFirstName = recipient.GetDemographics()["FirstName"], sprLastName = recipient.GetDemographics()["LastName"], sprMemberType = recipient.GetDemographics()["_Custom01"], sprMemberSource = recipient.GetDemographics()["_Custom02"], sprExpireDate = (DateTime.TryParse(recipient.GetDemographics()["_Custom03"], out tmpDateTime) ? (DateTime?)tmpDateTime : (DateTime?)null), sprPrimaryEmail = recipient.GetDemographics()["_Custom04"] == "True", sprRecipId = response.PrimarySubscriber.UniqueID, timestmp = DateTime.Now, sprJoinDate = DateTime.Now }; dc.tbl_StormPostRecipients.InsertOnSubmit(newRecipient); dc.SubmitChanges(); // Construct the response object response.PrimarySubscriber.CusID = cusID; response.PrimarySubscriber.EmailAddress = customer.cusEmail; response.PrimarySubscriber.Subscriptions = new List <Newsletter>(); response.PrimarySubscriber.First_Name = recipient.GetDemographics()["FirstName"]; response.PrimarySubscriber.Last_Name = recipient.GetDemographics()["LastName"]; response.PrimarySubscriber.Member_Source = recipient.GetDemographics()["_Custom02"]; response.PrimarySubscriber.Member_Type = recipient.GetDemographics()["_Custom01"]; response.PrimarySubscriber.Primary_Email = (recipient.GetDemographics()["_Custom04"] == "True"); // Parse the Expire Date string temp = recipient.GetDemographics()["_Custom03"]; DateTime tmpDate = new DateTime(); response.PrimarySubscriber.Member_Expire_Date = (DateTime.TryParse(temp, out tmpDate)) ? (DateTime?)tmpDate : null; response.Success = true; return(response); } catch (Exception ex) { string argString = String.Format("cusId: {0}\r\n\r\n", cusID.ToString()); new SupportClasses.Mailer().SendEmail(ConfigurationManager.AppSettings["mailserviceuser"], ConfigurationManager.AppSettings["mailservicepwd"], "NewsletterService ERROR - " + ex.GetType().Name, "*****@*****.**", ConfigurationManager.AppSettings["newsletter-erroremailto"], "", "", argString + ex.ToString(), false, ConfigurationManager.AppSettings["erroremailsmtpserver"]); throw; } }
public bool UpdateSubscription(NewsletterSubscriber subscriber, int[] listIds, bool subscribe) { stormpost.api.SoapRequestProcessorService api; int listId = 0; try { api = new MemberServices.stormpost.api.SoapRequestProcessorService(); api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; for(int i = 0; i < listIds.Length; i++) { listId = listIds[i]; if (subscribe) api.subscribeToList(listId, subscriber.UniqueID, true, "", 0); else api.unsubscribeFromList(listId, subscriber.UniqueID, 0); } } catch(Exception ex) { string argString = String.Format("cusID: {0}; uniqueId: {1}; listId {2}; subscribe: {3}\r\n\r\n", subscriber.CusID, subscriber.UniqueID, listId.ToString(), subscribe.ToString()); new SupportClasses.Mailer().SendEmail(ConfigurationManager.AppSettings["mailserviceuser"], ConfigurationManager.AppSettings["mailservicepwd"], "NewsletterService ERROR - " + ex.GetType().Name, "*****@*****.**", ConfigurationManager.AppSettings["newsletter-erroremailto"], "", "", argString + ex.ToString(), false, ConfigurationManager.AppSettings["erroremailsmtpserver"]); throw; } return true; }
/// <summary> /// Makes a call to the StormPost API to retrieve the Recipient record, by uniqueId /// </summary> /// <param name="uniqueId">StormPost Unique ID</param> /// <returns></returns> private NewsletterSubscriber retrieveSubscriber(int uniqueId) { NewsletterSubscriber output; Dictionary<string, string> demographics; MemberServices.stormpost.api.Recipient recipient; stormpost.api.SoapRequestProcessorService api; stormpost.api.ListSubscription[] subscriptions; output = new NewsletterSubscriber(); output.Subscriptions = new List<Newsletter>(); // Retrieve the StormPost Subscriber info api = new MemberServices.stormpost.api.SoapRequestProcessorService(); api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; recipient = api.getRecipient(uniqueId); // Retrieve the Subscription data output.UniqueID = recipient.recipID.Value; output.EmailAddress = recipient.address; subscriptions = api.getRecipientSubscriptions(recipient.recipID.Value); subscriptions = subscriptions.Where(s => s.subscribed) .ToArray(); // Populate the subscriptions collection on the output object foreach (stormpost.api.ListSubscription sub in subscriptions) { output.Subscriptions.Add(new Newsletter() { ListId = sub.listID.Value, Name = sub.listTitle }); } // Retrive Demographics; StormPost refers to custom demographic fields by _Custom01, _Custom02, etc. demographics = recipient.GetDemographics(); output.First_Name = demographics.Keys.Contains("FirstName") ? demographics["FirstName"] : ""; output.Last_Name = demographics.Keys.Contains("LastName") ? demographics["LastName"] : ""; output.Member_Type = demographics.Keys.Contains("_Custom01") ? demographics["_Custom01"] : ""; output.Member_Source = demographics.Keys.Contains("_Custom02") ? demographics["_Custom02"] : ""; // Parse Expire date from the value in _Custom03 string temp = demographics.Keys.Contains("_Custom03") ? demographics["_Custom03"] : ""; DateTime tmpDate = new DateTime(); output.Member_Expire_Date = DateTime.TryParse(temp, out tmpDate) ? (DateTime?)tmpDate : (DateTime?)null; return output; }
public List<Newsletter> GetAllNewsletters() { List<Newsletter> output; stormpost.api.SoapRequestProcessorService api; stormpost.api.List[] lists; try { api = new MemberServices.stormpost.api.SoapRequestProcessorService(); api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; output = new List<Newsletter>(); lists = api.getLists(new stormpost.api.List()); foreach (stormpost.api.List list in lists) output.Add(new Newsletter() { ListId = list.listID.Value, Name = list.listTitle }); return output; } catch (Exception ex) { new SupportClasses.Mailer().SendEmail(ConfigurationManager.AppSettings["mailserviceuser"], ConfigurationManager.AppSettings["mailservicepwd"], "NewsletterService ERROR - " + ex.GetType().Name, "*****@*****.**", ConfigurationManager.AppSettings["newsletter-erroremailto"], "", "", ex.ToString(), false, ConfigurationManager.AppSettings["erroremailsmtpserver"]); throw; } }
public bool UpdateSubscriber(NewsletterSubscriber subscriber) { stormpost.api.SoapRequestProcessorService api; stormpost.api.Recipient recipient; try { api = new MemberServices.stormpost.api.SoapRequestProcessorService(); api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; recipient = api.getRecipient(subscriber.UniqueID); recipient.address = subscriber.EmailAddress; recipient.SetDemographic("FirstName", subscriber.First_Name); recipient.SetDemographic("LastName", subscriber.Last_Name); recipient.SetDemographic("_Custom01", subscriber.Member_Type); recipient.SetDemographic("_Custom02", subscriber.Member_Source); recipient.SetDemographic("_Custom03", subscriber.Member_Expire_Date.GetValueOrDefault(new DateTime(1900, 1,1)).ToString("yyyy-MM-dd")); api.updateRecipient(recipient); return true; } catch (Exception ex) { string argString = String.Format("Unique Id: {0}\r\n\r\n", subscriber.UniqueID.ToString()); new SupportClasses.Mailer().SendEmail(ConfigurationManager.AppSettings["mailserviceuser"], ConfigurationManager.AppSettings["mailservicepwd"], "NewsletterService ERROR - " + ex.GetType().Name, "*****@*****.**", ConfigurationManager.AppSettings["newsletter-erroremailto"], "", "", argString + ex.ToString(), false, ConfigurationManager.AppSettings["erroremailsmtpserver"]); throw; } }
public NewsletterResponseObject CreateSubscriber(string encCusId, ushort position) { stormpost.api.SoapRequestProcessorService api; stormpost.api.Recipient recipient, existing; HarperLINQ.AHT_MainDataContext dc; HarperLINQ.tbl_Customer customer; HarperLINQ.tbl_NetMembership maxMembership; HarperLINQ.tbl_MembershipType maxMembershipType; HarperLINQ.tbl_StormPostRecipient newRecipient; NewsletterResponseObject response; int cusID = 0; try { cusID = Int32.Parse(HarperCRYPTO.Cryptography.DeHash(encCusId, true)); api = new MemberServices.stormpost.api.SoapRequestProcessorService(); dc = new HarperLINQ.AHT_MainDataContext(ConfigurationManager.ConnectionStrings["AHT_MainConnectionString"].ConnectionString); response = new NewsletterResponseObject(); response.Success = false; response.PrimarySubscriber = new NewsletterSubscriber(); // Set the authentication on the SOAP object api.authenticationValue = new MemberServices.stormpost.api.authentication(); api.authenticationValue.username = ConfigurationManager.AppSettings["newsletter-api-username"]; api.authenticationValue.password = ConfigurationManager.AppSettings["newsletter-api-password"]; // Get the customer and his associated NetMembership record customer = dc.tbl_Customers.Where(c => c.cusID == cusID) .Single(); try { maxMembership = dc.tbl_NetMemberships.Where(nm => nm.cusID == customer.cusID) .OrderByDescending(nm => nm.nmbDateEnd) .First(); } catch { maxMembership = null; } try { maxMembershipType = dc.tbl_MembershipTypes.Where(mt => mt.mtyCode == maxMembership.mtyCode) .Single(); } catch { maxMembershipType = null; } // "Lazy" coding: look for an excuse not to do any work... if (position != 1 && position != 2) throw new ApplicationException("Postion specified is unsupported. Currently this operation only selects position 1 or 2."); else if (position == 1 && customer.cusStormPostPrimaryID.HasValue && customer.cusStormPostPrimaryID > 0) throw new ApplicationException(String.Format("The customer selected already has a StormPulse account ({0})", customer.cusStormPostPrimaryID)); else if (position == 2 && customer.cusStormPostSecondaryID.HasValue && customer.cusStormPostSecondaryID > 0) throw new ApplicationException(String.Format("The customer selected already has a StormPulse account ({0})", customer.cusStormPostSecondaryID)); // Set up the recipient object recipient = new MemberServices.stormpost.api.Recipient(); recipient.dateJoined = DateTime.Now; recipient.externalID = customer.cusCustNum; recipient.SetDemographic("FirstName", customer.cusFirstName); recipient.SetDemographic("LastName", customer.cusLastName); recipient.SetDemographic("_Custom01", (maxMembershipType != null) ? maxMembershipType.mtyName : ""); recipient.SetDemographic("_Custom02", customer.csoCode); recipient.SetDemographic("_Custom03", (maxMembership != null) ? maxMembership.nmbDateEnd.ToShortDateString() : ""); recipient.SetDemographic("_Custom04", position == 1 ? "True" : "False"); if (position == 1) recipient.address = customer.cusEmail; else if (position == 2) recipient.address = customer.cusSecondEmail; // Check whether the recipient already exists at stormpost existing = null; try { existing = api.getRecipientByAddress(recipient.address); } catch { } if (existing != null) { if (!String.IsNullOrEmpty(existing.address) && existing.recipID.HasValue) { return updateCustomerStormPostId(cusID, position, existing.recipID.Value); } } // Make the createRecipient call, and update Nucleus with the new value response.PrimarySubscriber.UniqueID = api.createRecipientAndReturnRecipID(recipient); if (position == 1) customer.cusStormPostPrimaryID = response.PrimarySubscriber.UniqueID; else if (position == 2) customer.cusStormPostSecondaryID = response.PrimarySubscriber.UniqueID; // Create the StormPostRecipient object DateTime tmpDateTime = new DateTime(); newRecipient = new HarperLINQ.tbl_StormPostRecipient() { sprEmail = recipient.address, sprFirstName = recipient.GetDemographics()["FirstName"], sprLastName = recipient.GetDemographics()["LastName"], sprMemberType = recipient.GetDemographics()["_Custom01"], sprMemberSource = recipient.GetDemographics()["_Custom02"], sprExpireDate = (DateTime.TryParse(recipient.GetDemographics()["_Custom03"], out tmpDateTime) ? (DateTime?)tmpDateTime : (DateTime?)null), sprPrimaryEmail = recipient.GetDemographics()["_Custom04"] == "True", sprRecipId = response.PrimarySubscriber.UniqueID, timestmp = DateTime.Now, sprJoinDate = DateTime.Now }; dc.tbl_StormPostRecipients.InsertOnSubmit(newRecipient); dc.SubmitChanges(); // Construct the response object response.PrimarySubscriber.CusID = cusID; response.PrimarySubscriber.EmailAddress = customer.cusEmail; response.PrimarySubscriber.Subscriptions = new List<Newsletter>(); response.PrimarySubscriber.First_Name = recipient.GetDemographics()["FirstName"]; response.PrimarySubscriber.Last_Name = recipient.GetDemographics()["LastName"]; response.PrimarySubscriber.Member_Source = recipient.GetDemographics()["_Custom02"]; response.PrimarySubscriber.Member_Type = recipient.GetDemographics()["_Custom01"]; response.PrimarySubscriber.Primary_Email = (recipient.GetDemographics()["_Custom04"] == "True"); // Parse the Expire Date string temp = recipient.GetDemographics()["_Custom03"]; DateTime tmpDate = new DateTime(); response.PrimarySubscriber.Member_Expire_Date = (DateTime.TryParse(temp, out tmpDate)) ? (DateTime?)tmpDate : null; response.Success = true; return response; } catch(Exception ex) { string argString = String.Format("cusId: {0}\r\n\r\n", cusID.ToString()); new SupportClasses.Mailer().SendEmail(ConfigurationManager.AppSettings["mailserviceuser"], ConfigurationManager.AppSettings["mailservicepwd"], "NewsletterService ERROR - " + ex.GetType().Name, "*****@*****.**", ConfigurationManager.AppSettings["newsletter-erroremailto"], "", "", argString + ex.ToString(), false, ConfigurationManager.AppSettings["erroremailsmtpserver"]); throw; } }