/******************************************************************** TA Teleadress Information AB - 2007 Author: Olof Lager, Inverso International AB Desc: Exempel program för att anropa Teleadress API Webservice tjänst ***********************************************************************/ using System; using System.Xml; using System.Xml.Serialization; using System.IO; namespace TAAPIPITest { /// /// Detta exempel antar att du har en web-reference som heter TAAPIWebReference /// class APITest { /// /// Gör en sökning på namn och ort. /// Spar ned xmlsvaret på c:\temp\APISvar.xml /// [STAThread] static void Main(string[] args) { TAAPIWebReference.NNAPIWebService ws = new TAAPIPITest.TAAPIWebReference.NNAPIWebService(); TAAPIWebReference.api_result apiResult = null; TAAPIWebReference.FindPersonClass findPersonClass = new TAAPIPITest.TAAPIWebReference.FindPersonClass(); TAAPIWebReference.QueryColumnsClass queryColumnsClass = new TAAPIPITest.TAAPIWebReference.QueryColumnsClass(); TAAPIWebReference.QueryParamsClass queryParamsClass = new TAAPIPITest.TAAPIWebReference.QueryParamsClass(); // Anger konto instälnningar // findPersonClass.UserId = "TEST"; findPersonClass.Password = "TEST"; // Sätter en 1'a i dom kolumner man vill ha tillbaka i svaret. queryColumnsClass.FirstName = 1; queryColumnsClass.LastName = 1; queryColumnsClass.StreetName = 1; queryColumnsClass.StreetNumber = 1; queryColumnsClass.StreetSuffix = 1; queryColumnsClass.ZipCode = 1; queryColumnsClass.Telephones = 1; queryColumnsClass.TelephoneTexts = 1; queryColumnsClass.BirthDate = 1; findPersonClass.QueryColumns = queryColumnsClass; // Lägger in kolumn objektet i fråge objectet. // Sätter fråge parametrar // queryParamsClass.FindName = "Teleadress*"; queryParamsClass.FindLocality = "Kalmar"; queryParamsClass.FromRecord = 1; queryParamsClass.ToRecord = 20; findPersonClass.QueryParams = queryParamsClass; // Ställer fråga. // try { apiResult = ws.Find( findPersonClass ); } catch(Exception e) { // Tjänsten kastar bara fel om kommikationen inte fungerar mellan servrarna. // // Ytterst sällan eller vid extrema fall kastar API-tjänsten fel. // // Felen returneras istället i felkoder och meddelanden, pga olika anropande // // teknologier och vissa hanterar inte Exception hantering // throw e; } // Testar om anropet har gått bra. // if( apiResult.error_code != 0 ) { throw new ApplicationException( string.Format( "Fel har inträffat. KOD: {0} TEXT: {1}", apiResult.error_code.ToString(), apiResult.error_text ), null ); } // Skriver ut lite statistik i consol fönstret // Console.WriteLine("Söktid: {0} sek.", TimeSpan.FromMilliseconds(apiResult.response_time).TotalSeconds.ToString() ); Console.WriteLine("Totalt antal träffar: {0}", apiResult.count_company + apiResult.count_private ); Console.WriteLine("Totalt antal returnerade träffar: {0}", apiResult.rowcount); Console.WriteLine("Totalt antal returnerade privat personer: {0}", apiResult.rowcount_private); Console.WriteLine("Totalt antal returnerade företags träffar: {0}", apiResult.rowcount_company); Console.WriteLine(""); // Öppnar och skriver över fil // StreamWriter sw = null; XmlTextWriter xwr = null; try { sw = File.CreateText( @"c:\temp\APISvar.xml" ); XmlSerializer xser = new XmlSerializer(typeof(TAAPIWebReference.api_result)); xwr = new XmlTextWriter(sw); xwr.Formatting = Formatting.Indented; xwr.WriteRaw( "" ); // fejka en skrivning så slipper man <&xml> taggen xser.Serialize(xwr,apiResult); } catch(Exception e ) { throw e; } finally { if( xwr != null ) xwr.Close(); } // Wänta på retur tryck! // Console.ReadLine(); } } }