Skip to content

Commit

Permalink
feat(bpdm): add sharing state ready toggle (#905)
Browse files Browse the repository at this point in the history
add toggle to disable the set sharing state ready call of the bpdm service
----------------
Refs: #845
Reviewed-By: Norbert Truchsess <norbert.truchsess@t-online.de>
  • Loading branch information
Phil91 authored Sep 11, 2024
1 parent 256d7b4 commit dc2042c
Show file tree
Hide file tree
Showing 6 changed files with 89 additions and 65 deletions.
4 changes: 3 additions & 1 deletion src/administration/Administration.Service/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,9 @@
"ClientSecret": "",
"Scope": "",
"TokenAddress": "",
"BaseAddress": ""
"BaseAddress": "",
"UseDimWallet": false,
"StartSharingStateAsReady": false
},
"Clearinghouse": {
"Username": "",
Expand Down
2 changes: 2 additions & 0 deletions src/externalsystems/Bpdm.Library/BpdmServiceSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,6 @@ public class BpdmServiceSettings : KeyVaultAuthSettings
public string BaseAddress { get; set; } = null!;

public bool UseDimWallet { get; set; }

public bool StartSharingStateAsReady { get; set; }
}
34 changes: 16 additions & 18 deletions src/externalsystems/Bpdm.Library/BusinessLogic/BpdmBusinessLogic.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,22 +28,17 @@

namespace Org.Eclipse.TractusX.Portal.Backend.Bpdm.Library.BusinessLogic;

public class BpdmBusinessLogic : IBpdmBusinessLogic
public class BpdmBusinessLogic(
IPortalRepositories portalRepositories,
IBpdmService bpdmService,
IOptions<BpdmServiceSettings> options)
: IBpdmBusinessLogic
{
private readonly IPortalRepositories _portalRepositories;
private readonly IBpdmService _bpdmService;
private readonly BpdmServiceSettings _settings;

public BpdmBusinessLogic(IPortalRepositories portalRepositories, IBpdmService bpdmService, IOptions<BpdmServiceSettings> options)
{
_portalRepositories = portalRepositories;
_bpdmService = bpdmService;
_settings = options.Value;
}
private readonly BpdmServiceSettings _settings = options.Value;

public async Task<IApplicationChecklistService.WorkerChecklistProcessStepExecutionResult> PushLegalEntity(IApplicationChecklistService.WorkerChecklistProcessStepData context, CancellationToken cancellationToken)
{
var result = await _portalRepositories.GetInstance<IApplicationRepository>().GetBpdmDataForApplicationAsync(context.ApplicationId).ConfigureAwait(ConfigureAwaitOptions.None);
var result = await portalRepositories.GetInstance<IApplicationRepository>().GetBpdmDataForApplicationAsync(context.ApplicationId).ConfigureAwait(ConfigureAwaitOptions.None);

if (result == default)
{
Expand Down Expand Up @@ -88,8 +83,11 @@ public BpdmBusinessLogic(IPortalRepositories portalRepositories, IBpdmService bp
data.Region,
data.Identifiers);

await _bpdmService.PutInputLegalEntity(bpdmTransferData, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
await _bpdmService.SetSharingStateToReady(context.ApplicationId.ToString(), cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
await bpdmService.PutInputLegalEntity(bpdmTransferData, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
if (!_settings.StartSharingStateAsReady)
{
await bpdmService.SetSharingStateToReady(context.ApplicationId.ToString(), cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
}

return new IApplicationChecklistService.WorkerChecklistProcessStepExecutionResult(
ProcessStepStatusId.DONE,
Expand All @@ -102,15 +100,15 @@ public BpdmBusinessLogic(IPortalRepositories portalRepositories, IBpdmService bp

public async Task<IApplicationChecklistService.WorkerChecklistProcessStepExecutionResult> HandlePullLegalEntity(IApplicationChecklistService.WorkerChecklistProcessStepData context, CancellationToken cancellationToken)
{
var result = await _portalRepositories.GetInstance<IApplicationRepository>()
var result = await portalRepositories.GetInstance<IApplicationRepository>()
.GetBpdmDataForApplicationAsync(context.ApplicationId).ConfigureAwait(ConfigureAwaitOptions.None);

if (result == default)
{
throw new UnexpectedConditionException($"CompanyApplication {context.ApplicationId} does not exist");
}

var sharingState = await _bpdmService.GetSharingState(context.ApplicationId, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
var sharingState = await bpdmService.GetSharingState(context.ApplicationId, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.None);
if (sharingState.SharingProcessStarted == null)
{
return new IApplicationChecklistService.WorkerChecklistProcessStepExecutionResult(ProcessStepStatusId.TODO, null, null, null, false, "SharingProcessStarted was not set");
Expand All @@ -132,15 +130,15 @@ await HandlePullLegalEntityInternal(context, result.CompanyId, result.BpdmData,
BpdmData data,
CancellationToken cancellationToken)
{
var legalEntity = await _bpdmService.FetchInputLegalEntity(context.ApplicationId.ToString(), cancellationToken)
var legalEntity = await bpdmService.FetchInputLegalEntity(context.ApplicationId.ToString(), cancellationToken)
.ConfigureAwait(ConfigureAwaitOptions.None);

if (string.IsNullOrEmpty(legalEntity.LegalEntity?.Bpnl))
{
return new IApplicationChecklistService.WorkerChecklistProcessStepExecutionResult(ProcessStepStatusId.TODO, null, null, null, false, null);
}

_portalRepositories.GetInstance<ICompanyRepository>().AttachAndModifyCompany(
portalRepositories.GetInstance<ICompanyRepository>().AttachAndModifyCompany(
companyId,
company =>
{
Expand Down
3 changes: 2 additions & 1 deletion src/processes/Processes.Worker/appsettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,8 @@
"Scope": "",
"TokenAddress": "",
"BaseAddress": "",
"UseDimWallet": false
"UseDimWallet": false,
"StartSharingStateAsReady": false
},
"SdFactory":{
"Username": "",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,9 @@
"ClientSecret": "test",
"Scope": "test",
"TokenAddress": "test",
"BaseAddress": "test"
"BaseAddress": "test",
"UseDimWallet": false,
"StartSharingStateAsReady": false
},
"Clearinghouse": {
"Username": "test",
Expand Down
Loading

0 comments on commit dc2042c

Please sign in to comment.