/********************************************************************
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();
}
}
}