/// <summary> /// /// </summary> /// <param name="message"></param> /// <param name="ex"></param> /// <returns></returns> /// TODO: doesn't confirm to DRY princple - must be a better way to do this using generics public static new ContactPreferencesOperationStatus CreateFromException(string message, Exception ex) { ContactPreferencesOperationStatus opStatus = new ContactPreferencesOperationStatus { Status = false, Message = message, OperationId = null }; if (ex != null) { opStatus.ExceptionMessage = ex.Message; opStatus.ExceptionStackTrace = ex.StackTrace; opStatus.ExceptionInnerMessage = (ex.InnerException == null) ? null : ex.InnerException.Message; opStatus.ExceptionInnerStackTrace = (ex.InnerException == null) ? null : ex.InnerException.StackTrace; } return opStatus; }
private ContactPreferencesOperationStatus GetContactPreferences(int externalContactNumber, bool currentRecordsOnly) { var opStatus = new ContactPreferencesOperationStatus { Status = true }; ContactPreferences preferences = new ContactPreferences(); preferences.ExternalContactNumber = externalContactNumber; //preferences.ExternalAddressNumber = externalAddressNumber; string sendXML = String.Format("<Parameters>" + "<ContactNumber>{0}</ContactNumber>" + //"<AddressNumber>{1}</AddressNumber>" + "</Parameters>", externalContactNumber);//, externalAddressNumber //Load xmldata into XDocument Object XDocument sendingXMLDoc = XDocument.Parse(sendXML); var careWebServices = new CARECustomerPortalExtensions.CareWebServices.NDataAccessSoapClient(); string returnXML = careWebServices.SelectContactData(CustomerPortalExtensions.CareWebServices.XMLContactDataSelectionTypes.xcdtContactCategories, sendingXMLDoc.ToString()); XDocument receivingXMLDoc = XDocument.Parse(returnXML); List<Preference> contactPreferences = new List<Preference>(); try { foreach (XElement preferenceNode in receivingXMLDoc.Descendants("DataRow")) { string status = preferenceNode.Element("Status").Value; if (!currentRecordsOnly || status == "Current") { contactPreferences.Add(new Preference { Category = preferenceNode.Element("ActivityCode").Value, Value = preferenceNode.Element("ActivityValueCode").Value, ValidFrom = Convert.ToDateTime(preferenceNode.Element("ValidFrom").Value), ValidTo = Convert.ToDateTime(preferenceNode.Element("ValidTo").Value) }); } } } catch (Exception e) { opStatus = ContactPreferencesOperationStatus.CreateFromException("Error retrieving contact preferences from CARE: " + e.Message, e); opStatus.Status = false; } preferences.Preferences = contactPreferences; opStatus.UpdatedPreferences = preferences; return opStatus; }