Site Service customizations

The SiteService is a WCF service that loads up any implementation of a "ISiteServicePlugin". In the development pack you can find the implementation at "Site service\SiteManagerPlugin".

The SiteManagerPlugin contains all of the business logic and functions that the SiteService can perform. If you look at the file "SiteManagerPlugin.cs" you can see that it implements two interfaces: "ISiteService" and "ISiteServicePlugin". The interface "ISiteService"(code located in Core\Service interfaces\SiteServiceInterface) contains the definition of all of the functions that the plugin performs and this interface is where you can add functions to the SiteManagerPlugin that the SiteService runs.

The POS and Site Manager then use a special Service to communicate with the "SiteManagerPlugin" which is hosted on the SiteService. This service is located in the development pack at "Core\Common services\SiteServiceService". This service instanciates an object of type ISiteService and can then use the functions defined in that interface. This service implements the "IStoreServerService" interface, and usually this interface closely mirrors the "ISiteService" interface in terms of the functions it exposes.

 

To close the loop on this, the execution flow is as follows:

  1. POS/SM needs something from the Site Service
  2. POS/SM executes a function in SiteServiceService
  3. SiteServiceService calls the actual WCF SiteService and returns to the POS/SM.

 

See also