Person Service
This service is used to handle EPS people, such as users, subscribers, customers,…
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<IPersonService>(s => {
var response = s.GetPeople(new PersonInformationRequest();
});
ServiceClient.Call<IInquiryService>(s => {
var response = s.SaveInquiry(new InquirySavingRequest());
});
ServiceClient.Call<IPositionService>(s => {
var response = s.GetAvailableJobs();
});
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.Person.PersonContract |
Provides all contracts needed to access the service (usually through CODE Framework) |
EPS.Thessaly.Person.ServiceImplementation |
Full service implementation for in-process hosting |
EPS.Thessaly.Person.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": {
"IPersonService": "tbd",
"IInquiryService": "tbd",
"IPositionService": "tbd"
}
}
For XML configurations (such as in web.config
or app.config
:
<add key="RestServiceUrl:IPersonService" value="tbd"/>
<add key="RestServiceUrl:IInquiryService" value="tbd"/>
<add key="RestServiceUrl:IPositionService" 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:IPersonService" value="Person"/>
<add key="ServicePort:IPersonService" value="45150"/>
<add key="ServiceMessageSize:IPersonService" value="Large"/>
<add key="ServiceBasePath:IInquiryService" value="Inquiry"/>
<add key="ServicePort:IInquiryService" value="45151"/>
<add key="ServiceMessageSize:IPositionService" value="Large"/>
<add key="ServiceBasePath:IPositionService" value="Position"/>
<add key="ServicePort:IPositionService" value="45152"/>
<add key="ServiceMessageSize:IPositionService" value="Large"/>
Note: This is an older service that does not follow all the latest service standards. For instance, the GetAvailableJobs() 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/person/IPersonService | www.epsservices.net | person |
BasicHttp | 80 | http://www.epsservices.net/person/IPersonService/basic | www.epsservices.net | person |
REST XML | 80 | http://www.epsservices.net/person/IPersonService/rest/xml | www.epsservices.net | person |
REST JSON | 80 | http://www.epsservices.net/person/IPersonService/rest/json | www.epsservices.net | person |
IInquiryService
Protocol | Port | Uri | Base URL | Base Path |
---|---|---|---|---|
NetTcp | 45151 | net.tcp://www.epsservices.net/person/IInquiryService | www.epsservices.net | person |
BasicHttp | 80 | http://www.epsservices.net/person/IInquiryService/basic | www.epsservices.net | person |
REST XML | 80 | http://www.epsservices.net/person/IInquiryService/rest/xml | www.epsservices.net | person |
REST JSON | 80 | http://www.epsservices.net/person/IInquiryService/rest/json | www.epsservices.net | person |
IPositionService
Protocol | Port | Uri | Base URL | Base Path |
---|---|---|---|---|
NetTcp | 45152 | net.tcp://www.epsservices.net/person/IPositionService | www.epsservices.net | person |
BasicHttp | 80 | http://www.epsservices.net/person/IPositionService/basic | www.epsservices.net | person |
REST XML | 80 | http://www.epsservices.net/person/IPositionService/rest/xml | www.epsservices.net | person |
REST JSON | 80 | http://www.epsservices.net/person/IPositionService/rest/json | www.epsservices.net | person |
Service Ports for TCP/IP (NetTcp) Service Endpoints
Interface | NetTcp Port |
---|---|
IPersonService | 45150 |
IInquiryService | 45151 |
IPositionService | 45152 |
– reserved for future use – | 45153 |
– reserved for future use – | 45154 |
– reserved for future use – | 45155 |
– reserved for future use – | 45156 |
– reserved for future use – | 45157 |
– reserved for future use – | 45158 |
– reserved for future use – | 45159 |
Solution
This service is part of the Person
solution of the Thessaly Services
folder.
Deployment
To re-deploy a new version of this service, follow these steps:
- Rebuild the Person solution in Release configuration.
- Verify that the configuration settings in app.config of the EventServiceWindowsService project are set properly (BaseUri = www.epsservices.net, and database:Server = SQL01).
- Verify that all projects have an appropriately updated version number.
- Use the Installer Service Client Application to deploy the service to the server
- Deploy the ASP.NET Core REST hosting environment
- t.b.d.
- Publish NuGet packages into the prive EPSPackages source.
\nuget push -Source "EPSPackages" -ApiKey AzureDevOps "EPS.Thessaly.Person.PersonContract.5.0.0.nupkg"
\nuget push -Source "EPSPackages" -ApiKey AzureDevOps "EPS.Thessaly.Person.ServiceImplementation.5.0.0.nupkg"
\nuget push -Source "EPSPackages" -ApiKey AzureDevOps "EPS.Thessaly.Person.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