Object used for encapsulating the details of an contact list
        /// <summary>
        /// Method used for adding a new contact list to Constant Contact
        /// </summary>
        /// <param name="credentialsDetail">An object that encapsulates the Constant Contact credentials</param>
        /// <param name="name">The name of the new contact list</param>
        /// <param name="strRequest">The request string representation</param>
        /// <param name="strResponse">The response string representation</param>
        /// <returns>A Contact List Detail object with the newly created contact lists</returns>
        public static ContactListDetails AddContactList(CredentialsDetails credentialsDetail, string name,
            out string strRequest, out string strResponse)
        {
            var returnValue = new ContactListDetails();

            var contactURI = "https://api.constantcontact.com/ws/customers/" + credentialsDetail.User + "/lists";

            var response = ApiCallComponent.CallServicePost(credentialsDetail, contactURI, CreateList(name),
                                                            out strRequest, out strResponse);

            var xdoc = XDocument.Parse(response);

            var result = from doc in xdoc.Descendants(W3Ns + "id")
                         select doc.Value;

            var id = result.FirstOrDefault();

            if (string.IsNullOrEmpty(id))
                throw new Exception();

            returnValue.Id = "https" + Regex.Split(id, "http")[1];
            returnValue.Name = name;

            return returnValue;
        }