E web service-nek három függvénye lesz:
- PackageCost - egy megadott súly alapján visszaadja, hogy mennyi lesz a csomag feladási díja
- AfterBuyCost - egy megadott utánvételi összeg alapján visszaadja, hogy mennyi lesz az utánvétel feladási díja
- AfterBuyPackagesCost - súly és utánvételi összeg alapján visszaadja, hogy mennyi lesz az utánvételes csomag feladási díja. Ez a függvény valójában az előző kettőt fogja meghívni és azok által adott értékek összegét adja vissza.
A megvalósítás úgy történik, hogy létrehozunk két darab kétdimenziós tömböt. Az egyikben tároljuk azokat az információkat, hogy mekkora súlyú csomaghoz mekkora feladási díj tartozik, míg a másikba kerül az utánvételes összeg nagyságától függő díjszabás.
Felmerülhet a kérdés, hogy ezeket az értéket miért nem külső adatállományban tároljuk, hiszen egy árváltozás esetén elegendő lenne csak azokat változtatni, nem kellene a kódot újra fordítani. Ennek oka az, hogy általában nem csak az árak változnak, hanem egy-egy csomag költségének kiszámítási módja is. Például nemrég még más díj tartozott a házhoz kézbesített csomagokhoz és más a postafiókra küldött csomagokhoz. Aktuálisan ez megszűnt és egységes a díj mindkét esetben. Mivel ilyen esetekben amúgy sem lenne elegendő csak az értékeket változtatni, hanem a kódot is igazítani kellene, így nem érdemes külön adatállománnyal bonyolítani a feldolgozás menetét.
A PackageCost és a AfterBuyCost függvény is ugyanazzal a módszerrel dolgozik: végignézi az adott tömböt és meghatározza, hogy a megadott értékhez mennyi feladási díj tartozik. Amint ez meghatározásra került, máris visszatér a függvény ezzel az értékkel.
A web service publikálása után az alábbi URL-el lekérdezhetjük, hogy egy 8 960 Ft-os utánvételi összeggel feladandó 1,95 kg súlyú csomag esetén mennyit kell majd fizetnünk a postán, vagyis mennyi lesz e csomag postaköltsége:
http://localhost/postagesetup/Service1.asmx/AfterBuyPackagesCost?Value=8960&Weight=1%2C95
Az eredményt természetesen XML formában kapjuk:
<?xml version="1.0" encoding="utf-8" ?>
<int xmlns="http://tempuri.org/">740</int>
Ebből persze könnyedén kiolvashatjuk, hogy e csomagért 740 Ft-ot kell majd fizetnünk.
Publikálás web szerveren
A web service publikálást megkönnyítendő készítünk egy telepítő csomagot is alkalmazásunkhoz. Ehhez egy új projektet adunk hozzá a jelenlegihez, mely Web Setup Project típusú kell hogy legyen.
Itt a Project - Add - Project Output menüpont kiválasztása után a Primary output és a Content files elemek kiválasztásával el is készült a telepítő csomagunk. Már csak a fordítás marad hátra, amely létrehozza a PostageSetup.msi telepítő állományt.