![]() | Introduction |
Documentation for https://fram-ws-v3-test.bussgods.se/Service1.svc.
using System; using System.Collections.Generic; using System.Linq; using Bussgods.WcfService.Example.BussgodsReference; namespace Bussgods.WcfService.Example { class Program { public static byte COUNTY_CODE = 53; public static string USERNAME = "user@domain.xyx"; public static string PASSWORD = "password"; public static string URL = "http://web-test.bussgods.se/internetfraktsedel/Copy/{0}"; public static Service1Client _bussgods = new Service1Client(); static void Main(string[] args) { if (args.Contains("bussgodsnumbers")) BussgodsSeries(); if (args.Contains("ownnumbers")) OwnSeries(); if (args.Contains("getprice")) GetPrice(); Console.WriteLine("Press Any Key..."); Console.ReadKey(); } /// <summary> /// Shipment/Parcel numbers from Bussgods. /// </summary> static void BussgodsSeries() { // Ping Console.WriteLine("Ping?: {0}", _bussgods.Ping()); Console.WriteLine(""); // Login var user = _bussgods.Login(USERNAME, PASSWORD); if (user != null) { // AuthTicket var authTicket = new AuthTicket { CountyCode = COUNTY_CODE, Token = user.Token, Username = USERNAME }; // Cities var cities = _bussgods.GetCities(authTicket); var fromCity = cities.FirstOrDefault(c => c.Name == "GÄVLE"); var toCity = cities.FirstOrDefault(c => c.Name == "TROSA"); //var toCity = cities.FirstOrDefault(c => c.Name == "Finland"); /* For Finland */ Console.WriteLine("From City: {0} ({1})", fromCity.Name, fromCity.CityCode); Console.WriteLine("To City: {0} ({1})", toCity.Name, toCity.CityCode); Console.WriteLine(""); // Stations var fromStation = _bussgods.GetClosestPublicStation(authTicket, 80434); var toStation = _bussgods.GetClosestPublicStation(authTicket, 61935); //var toStation = _bussgods.GetStation(authTicket, 5301); /* For Finland */ Console.WriteLine("From Station: {0} ({1} / City: {2} ({3})", fromStation.Name, fromStation.StationNumber, fromStation.CityName, fromStation.CityCode); Console.WriteLine("To Station: {0} ({1}) / City: {2} ({3})", toStation.Name, toStation.StationNumber, toStation.CityName, toStation.CityCode); Console.WriteLine(""); // InternetWaybill var internetWaybill = new InternetWaybillModel { //AccountNumber = "8412041234", //AccountType = "KTO", //Bankgiro = "1234567", //ClearingNumber = "3300", COD = false, //CODReference = "Kalle", CODSum = 0, Contents = "Stones", CustomerNumber = 1, DateCreated = DateTime.Now, Delivery = false, DeliveryInstructions = "Leave the package on the stairs.", FreeText = "Very nice stones.", InsurancePriceID = null, LastAltered = DateTime.Now, NumberOfParcels = 1, ParcelType = "Övrigt", //Plusgiro = "12345678", Product = 1, ReceiverAddress = "Gatan 1", ReceiverCity = "Ankeborg", //ReceiverCustomerNumber = 9000, ReceiverCityCode = toCity.CityCode, ReceiverStationNumber = toStation.StationNumber, ReceiverEmail = "musse@pigg.nu", ReceiverName = "Musse Pigg", ReceiverPhone = "012121212", ReceiverReference = "Musse", ReceiverZipCode = "54321", SenderCityCode = fromCity.CityCode, SenderStationNumber = fromStation.StationNumber, SenderAddress = "Gatan 2", SenderCity = "Ankeborg", SenderEmail = "kalle@anka.nu", SenderName = "Kalle Anka", SenderPhone = "013131313", SenderReference = "Kalle", SenderZipCode = "12345", ShipmentNumber = "1234567890", TotalWeight = 1, TotalVolume = 0.0024f, }; // Parcels var parcels = new List<InternetWaybillParcelModel>(); for (int packageNumber = 1; packageNumber <= internetWaybill.NumberOfParcels; packageNumber++) { var internetWaybillParcel = new InternetWaybillParcelModel { PackageNumber = packageNumber, ShipmentNumber = internetWaybill.ShipmentNumber }; parcels.Add(internetWaybillParcel); } internetWaybill.InternetWaybillParcels = parcels.ToArray(); // Result string shipmentNumber = _bussgods.SaveInternetWaybillWithParcelsWithoutOwnNumbers(authTicket, internetWaybill); if (!string.IsNullOrWhiteSpace(shipmentNumber)) { string url = string.Format(URL, shipmentNumber); Console.WriteLine("ShipmentNumber: {0}, Url: {1}", shipmentNumber, url); Console.WriteLine(""); } } } /// <summary> /// Has its own Shipment/Parcel numbers. /// </summary> static void OwnSeries() { // Ping Console.WriteLine("Ping?: {0}", _bussgods.Ping()); Console.WriteLine(""); // Login var user = _bussgods.Login(USERNAME, PASSWORD); if (user != null) { // AuthTicket var authTicket = new AuthTicket { CountyCode = COUNTY_CODE, Token = user.Token, Username = USERNAME }; // Cities var cities = _bussgods.GetCities(authTicket); var fromCity = cities.FirstOrDefault(c => c.Name == "GÄVLE"); var toCity = cities.FirstOrDefault(c => c.Name == "TROSA"); //var toCity = cities.FirstOrDefault(c => c.Name == "Finland"); /* For Finland */ Console.WriteLine("From City: {0} ({1})", fromCity.Name, fromCity.CityCode); Console.WriteLine("To City: {0} ({1})", toCity.Name, toCity.CityCode); Console.WriteLine(""); // Stations var fromStation = _bussgods.GetClosestPublicStation(authTicket, 80434); var toStation = _bussgods.GetClosestPublicStation(authTicket, 61935); //var toStation = _bussgods.GetStation(authTicket, 5301); /* For Finland */ Console.WriteLine("From Station: {0} ({1} / City: {2} ({3})", fromStation.Name, fromStation.StationNumber, fromStation.CityName, fromStation.CityCode); Console.WriteLine("To Station: {0} ({1}) / City: {2} ({3})", toStation.Name, toStation.StationNumber, toStation.CityName, toStation.CityCode); Console.WriteLine(""); // InternetWaybill var internetWaybill = new InternetWaybillModel { //AccountNumber = "8412041234", //AccountType = "KTO", //Bankgiro = "1234567", //ClearingNumber = "3300", COD = false, //CODReference = "Kalle", CODSum = 0, Contents = "Stones", CustomerNumber = 1, DateCreated = DateTime.Now, Delivery = false, DeliveryInstructions = "Leave the package on the stairs.", FreeText = "Very nice stones.", InsurancePriceID = null, LastAltered = DateTime.Now, NumberOfParcels = 1, ParcelType = "Övrigt", //Plusgiro = "12345678", Product = 1, ReceiverAddress = "Gatan 1", ReceiverCity = "Ankeborg", //ReceiverCustomerNumber = 9000, ReceiverCityCode = toCity.CityCode, ReceiverStationNumber = toStation.StationNumber, ReceiverEmail = "musse@pigg.nu", ReceiverName = "Musse Pigg", ReceiverPhone = "012121212", ReceiverReference = "Musse", ReceiverZipCode = "54321", SenderCityCode = fromCity.CityCode, SenderStationNumber = fromStation.StationNumber, SenderAddress = "Gatan 2", SenderCity = "Ankeborg", SenderEmail = "kalle@anka.nu", SenderName = "Kalle Anka", SenderPhone = "013131313", SenderReference = "Kalle", SenderZipCode = "12345", ShipmentNumber = "1234567890", TotalWeight = 1, TotalVolume = 0.0024f, }; // Parcels var parcels = new List<InternetWaybillParcelModel>(); for (int packageNumber = 1; packageNumber <= internetWaybill.NumberOfParcels; packageNumber++) { var internetWaybillParcel = new InternetWaybillParcelModel { PackageNumber = packageNumber, }; parcels.Add(internetWaybillParcel); } internetWaybill.InternetWaybillParcels = parcels.ToArray(); // Result Console.WriteLine("Result: {0}", _bussgods.SaveInternetWaybillWithParcels(authTicket, internetWaybill)); Console.WriteLine(""); } } /// <summary> /// Calculates price for Shipment. /// </summary> static void GetPrice() { // Ping Console.WriteLine("Ping?: {0}", _bussgods.Ping()); Console.WriteLine(""); // Login var user = _bussgods.Login(USERNAME, PASSWORD); if (user != null) { // AuthTicket var authTicket = new AuthTicket { CountyCode = COUNTY_CODE, Token = user.Token, Username = USERNAME }; // Cities var cities = _bussgods.GetCities(authTicket); var fromCity = cities.FirstOrDefault(c => c.Name == "GÄVLE"); var toCity = cities.FirstOrDefault(c => c.Name == "TROSA"); //var toCity = cities.FirstOrDefault(c => c.Name == "Finland"); /* For Finland */ Console.WriteLine("From City: {0} ({1})", fromCity.Name, fromCity.CityCode); Console.WriteLine("To City: {0} ({1})", toCity.Name, toCity.CityCode); Console.WriteLine(""); // Stations var fromStation = _bussgods.GetClosestPublicStation(authTicket, 80434); var toStation = _bussgods.GetClosestPublicStation(authTicket, 61935); //var toStation = _bussgods.GetStation(authTicket, 5301); /* For Finland */ Console.WriteLine("From Station: {0} ({1} / City: {2} ({3})", fromStation.Name, fromStation.StationNumber, fromStation.CityName, fromStation.CityCode); Console.WriteLine("To Station: {0} ({1}) / City: {2} ({3})", toStation.Name, toStation.StationNumber, toStation.CityName, toStation.CityCode); Console.WriteLine(""); // Price Request var priceRequest = new PriceRequest { COD = false, CODSum = 0, CustomerNumber = 1, Delivery = false, InsurancePriceID = null, ParcelType = "Övrigt", Product = 1, ReceiverCityCode = toStation.CityCode, SenderCityCode = fromStation.CityCode, Weight = 10, Volume = 0.10f }; // Result var price = _bussgods.GetPrice(authTicket, priceRequest); Console.WriteLine("{0} -> {1} ({2} kg, {3} m³) @ {4:C} ({5:C} without VAT)", fromStation.CityName, toStation.CityName, priceRequest.Weight, priceRequest.Volume, price.TotalFeeWithVAT, price.TotalFee); Console.WriteLine(""); } } } }