private CallsignData parseLicenseData(string callsign, string[] parts)
        {
            CallsignData cd = new CallsignData();

            cd.Callsign = callsign.ToUpper();

            return(cd);
        }
        private CallsignData buildCallsignData(XmlDocument xmlDoc)
        {
            CallsignData data = new CallsignData();

            if (xmlDoc != null)
            {
                data.Callsign     = xmlDoc.GetElementsByTagName("call")[0].InnerText;
                data.City         = xmlDoc.GetElementsByTagName("addr2")[0].InnerText;
                data.LicenseClass = String.Empty;
                string firstName = xmlDoc.GetElementsByTagName("fname")[0].InnerText;
                string lastName  = xmlDoc.GetElementsByTagName("name")[0].InnerText;
                data.Licensee = String.Format("{0} {1}", firstName, lastName).Trim();
                data.State    = xmlDoc.GetElementsByTagName("state")[0].InnerText;
            }
            return(data);
        }
        public CallsignData LookupCallsign(string callsign)
        {
            CallsignData cd = new CallsignData();

            cd.Callsign = callsign.ToUpper();
            string data = makeRequest(callsign);

            if (!String.IsNullOrEmpty(data))
            {
                data = cleanInitialData(data);
                string nameAndAddressData = getNameAndAddressData(data);
                data = clearToTag(data, textToBreakOn);
                string additionalData = cleanAdditionalData(data);
                cd = getCallsignData(callsign, nameAndAddressData, additionalData);
            }
            return(cd);
        }
        private CallsignData getCallsignData(string callsign, string nameAndAddressData, string additionalData)
        {
            CallsignData cd = new CallsignData();

            cd.Callsign = callsign.ToUpper();
            string[] parts = nameAndAddressData.Trim().Split(splitChar);
            cd.Licensee = parts[0].Trim();
            string[] addrParts = parts[parts.Length - 1].Trim().Split(' ');
            if (addrParts.Length >= 3)
            {
                cd.State = addrParts[addrParts.Length - 2].Trim();

                if (!UsStateListBuilder.isValidState(cd.State))
                {
                    cd.Licensee     = String.Empty;
                    cd.LicenseClass = String.Empty;
                    cd.State        = String.Empty;
                    cd.City         = String.Empty;
                    return(cd);
                }
                string city = String.Empty;
                for (int i = 0; i < addrParts.Length - 2; i++)
                {
                    city += addrParts[i] + " ";
                }
                cd.City = city.Trim();
            }
            parts = additionalData.Split(splitChar);
            foreach (string part in parts)
            {
                if (part.StartsWith("Class"))
                {
                    string[] children = part.Split(':');
                    if (children.Length == 2)
                    {
                        cd.LicenseClass = children[1].Trim();
                    }
                    break;
                }
            }
            return(cd);
        }