Magazine Service

This service is used to handle magazine related data, such as article content.

Note: Some part of this documentation are currently incomplete, as the new .NET Core REST deployment has not yet been finalized.

C# Service Access Example using CODE Framework

Using CODE Framework service call infrastructure, this service can be called from the client like so:

ServiceClient.Call<IMagazineService>(s => {
    var response = s.GetMagazines(new PublicationInformationRequest());
});

NuGet Packages

To use this service from .NET Core applications, add appropriate packages from the private EPSPackages repository. The following packages are available:

Package Purpose
EPS.Thessaly.MagazineService.Contract Provides all contracts needed to access the service (usually through CODE Framework)
EPS.Thessaly.MagazineService.Implementation Full service implementation for in-process hosting
EPS.Thessaly.MagazineService.BusinessObjects Lower-level business object implementation used by the service implementation

.NET Core Client Configuration

When using these services through CODE Framework's ServiceClient class the following configuration settings need to be added. This can be done through an XML configuration file, or a JSON file, or any other mechanism CODE Framework's configuration system supports. For ASP.NET Core applications, the following settings need to appear in appsettings.json:

"ApplicationSettings": {
  "RestServiceUrl": {
    "IMagazineService": "tbd"
  }
}

For XML configurations (such as in web.config or app.config:

<add key="RestServiceUrl:IMagazineService" value="tbd"/>

For more information on .NET Core service calling, see also: Calling Services in .NET Core.

Full .NET Framework Configuration

This requires the following settings to be set in the application configuration file (such as App.config or Web.config):

<add key="ServiceBaseUrl" value="www.epsservices.net"/>
<add key="ServiceProtocol" value="NetTcp"/>

<add key="ServiceBasePath:IMagazineService" value="Magazine"/>
<add key="ServicePort:IMagazineService" value="45100"/>
<add key="ServiceMessageSize:IMagazineService" value="Large"/>

Note: This is an older service that does not follow all the latest service standards. For instance, the GetMagazineList() operation does not accept an input message/parameter. However, the overall paradigm is reasonably close to all our latest standards.

Exposed Services

IPersonService

Protocol Port Uri Base URL Base Path
NetTcp 45150 net.tcp://www.epsservices.net/magazine/IMagazineService www.epsservices.net magazine
BasicHttp 80 http://www.epsservices.net/magazine/IMagazineService/basic www.epsservices.net magazine
REST XML 80 http://www.epsservices.net/magazine/IMagazineService/rest/xml www.epsservices.net magazine
REST JSON 80 http://www.epsservices.net/magazine/IMagazineService/rest/json www.epsservices.net magazine

Service Ports for TCP/IP (NetTcp) Service Endpoints

Interface NetTcp Port
IMagazineService 45100
– reserved for future use – 45101
– reserved for future use – 45102
– reserved for future use – 45103
– reserved for future use – 45104
– reserved for future use – 45105
– reserved for future use – 45106
– reserved for future use – 45107
– reserved for future use – 45108
– reserved for future use – 45109

Solution

This service is part of the Magazine solution of the Thessaly Services folder.

Deployment

To re-deploy a new version of this service, follow these steps:

  1. Rebuild the Magazine solution in Release configuration.
    1. Verify that the configuration settings in app.config of the MagazineServiceWindowsService project are set properly (BaseUri = www.epsservices.net, and database:Server = SQL01).
    2. Verify that all projects have an appropriately updated version number.
  2. Use the Installer Service Client Application to deploy the service to the server
  3. Deploy the ASP.NET Core REST hosting environment
    1. t.b.d.
  4. Publish NuGet packages into the prive EPSPackages source.
    1. \nuget push -Source "EPSPackages" -ApiKey AzureDevOps "EPS.Thessaly.MagazineService.Contract.5.0.0.nupkg"
    2. \nuget push -Source "EPSPackages" -ApiKey AzureDevOps "EPS.Thessaly.MagazineService.Implementation.5.0.0.nupkg"
    3. \nuget push -Source "EPSPackages" -ApiKey AzureDevOps "EPS.Thessaly.MagazineService.BusinessObjects.5.0.0.nupkg"

Make sure your package sources are configured to include EPSPackages, as described when you click “Connect to feed” on https://dev.azure.com/eps-software/EPSPackages/_packaging?_a=feed&feed=EPSPackages