Eplan Platform API
EPLAN API / User Guide / API Miscellaneous / IdentityClient
IdentityClient

This chapter shows how to work with the Eplan.IdentityClient.Authentification and Eplan.IdentityClient.Types namespaces.

 

First create an IEIdentityClient object and make sure you are signed in to EPLAN Cloud:

//Create IdentityClient instance
IEIdentityClient IdentityClient = EIdentityClient.Instance;

//Make sure you are signed in to EPLAN Cloud
Task<AuthenticationData> signInData = IdentityClient.Signin();
AuthenticationData signInResult = signInData.Result;

//Check if success
if (signInResult.IsSuccess)
    new Decider().Decide(EnumDecisionType.eOkDecision, "Sign in success", "Result", EnumDecisionReturn.eOK, EnumDecisionReturn.eOK);

 

Get example information from user cloud profile:

//User profile information
Task<IdentityClientResponse> userProfile = IdentityClient.GetUserProfile();
IdentityClientResponse getUserProfileResult = userProfile.Result;

//Show exmaple information
if (getUserProfileResult.IsSuccess)
{
    string message = $"Organization Name: {getUserProfileResult.OrganizationName},\nEmail: {getUserProfileResult.Email}";
    new Decider().Decide(EnumDecisionType.eOkDecision, message, "UserProfile success", EnumDecisionReturn.eOK, EnumDecisionReturn.eOK);
}

 

Set ClientId name to work with specific API service in EPLAN Cloud:

//ClientId of specific EPLAN Cloud API application
string ClientId = "Proper_Client_Id_Name";

 

Notice:
ClientId is case-sensitive and can be found on EPLAN Cloud Developer Portal inside tooltip of product tag:       

 

 

Use the GetHttpClient() method to work with EPLAN Cloud API endpoints:

//Initialize httpClient object
var url = "https://api.eplan.com/estockservice/v2.0/";
HttpClient httpClient = null;
IdentityClientResponse httpClientRespone = IdentityClient.GetHttpClient(strClientId, url, ref httpClient);

//Get collections
if (httpClientRespone.IsSuccess)
{
     HttpResponseMessage GetAsyncResult = httpClient.GetAsync("collections").Result;
     string message = $"Status: {GetAsyncResult.StatusCode.ToString()},\nResult: {GetAsyncResult.Content.ReadAsStringAsync().Result}";
     new Decider().Decide(EnumDecisionType.eOkDecision, message, "Get result", EnumDecisionReturn.eOK, EnumDecisionReturn.eOK);
}

 

The GetAccessToken() is called internally by GetHttpClient(), but it is still possible to use this method directly:

//Get access Token
IdentityClientResponse tokenResponse = IdentityClient.GetAccessToken(strClientId);

 

Sign out and exit:

//Sign out
Task<IdentityClientResponse> response = IdentityClient.Signout();
IdentityClientResponse signOutResult = response.Result;

if (signOutResult.IsSuccess)
    new Decider().Decide(EnumDecisionType.eOkDecision, "Sign out success", "Result", EnumDecisionReturn.eOK, EnumDecisionReturn.eOK);


//Exit IdentityClient
IdentityClientResponse exitResponse = IdentityClient.Exit();

if (exitResponse.IsSuccess)
    new Decider().Decide(EnumDecisionType.eOkDecision, "Exit success", "Result", EnumDecisionReturn.eOK, EnumDecisionReturn.eOK);