Skip to content

Commit

Permalink
cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
ntruchsess committed Jul 14, 2023
1 parent fee5a81 commit 4e16bc4
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ await _sdFactoryService

public async Task ProcessFinishSelfDescriptionLpForApplication(SelfDescriptionResponseData data, Guid companyId, CancellationToken cancellationToken)
{
var confirm = ValidateData(data);
var confirm = ValidateData(data, out var validated);
var context = await _checklistService
.VerifyChecklistEntryAndProcessSteps(
data.ExternalId,
Expand All @@ -106,7 +106,7 @@ public async Task ProcessFinishSelfDescriptionLpForApplication(SelfDescriptionRe

if (confirm)
{
var documentId = await ProcessDocument(SdFactoryResponseModelTitle.LegalPerson, data.Content!, cancellationToken).ConfigureAwait(false);
var documentId = await ProcessDocument(SdFactoryResponseModelTitle.LegalPerson, validated.Content, cancellationToken).ConfigureAwait(false);
_portalRepositories.GetInstance<ICompanyRepository>().AttachAndModifyCompany(companyId, null,
c => { c.SelfDescriptionDocumentId = documentId; });
}
Expand All @@ -127,11 +127,11 @@ public async Task ProcessFinishSelfDescriptionLpForApplication(SelfDescriptionRe
/// <inheritdoc />
public async Task ProcessFinishSelfDescriptionLpForConnector(SelfDescriptionResponseData data, Guid companyUserId, CancellationToken cancellationToken)
{
var confirm = ValidateData(data);
var confirm = ValidateData(data, out var validated);
Guid? documentId = null;
if (confirm)
{
documentId = await ProcessDocument(SdFactoryResponseModelTitle.Connector, data.Content!, cancellationToken).ConfigureAwait(false);
documentId = await ProcessDocument(SdFactoryResponseModelTitle.Connector, validated.Content, cancellationToken).ConfigureAwait(false);
}
_portalRepositories.GetInstance<IConnectorsRepository>().AttachAndModifyConnector(data.ExternalId, null, con =>
{
Expand All @@ -142,26 +142,55 @@ public async Task ProcessFinishSelfDescriptionLpForConnector(SelfDescriptionResp
if (!confirm)
{
con.SelfDescriptionMessage = data.Message!;
con.SelfDescriptionMessage = validated.Message;
}
con.LastEditorId = companyUserId;
con.DateLastChanged = DateTimeOffset.UtcNow;
});
}

private static bool ValidateData(SelfDescriptionResponseData data)
private sealed class ValidatedResponseData
{
var confirm = data.Status == SelfDescriptionStatus.Confirm;
switch (confirm)
private readonly bool _confirm;
private readonly SelfDescriptionResponseData _data;
public ValidatedResponseData(SelfDescriptionResponseData data)
{
case false when string.IsNullOrEmpty(data.Message):
throw new ConflictException("Please provide a messsage");
case true when data.Content == null:
throw new ConflictException("Please provide a selfDescriptionDocument");
_confirm = data.Status == SelfDescriptionStatus.Confirm;
switch (_confirm)
{
case false when string.IsNullOrEmpty(data.Message):
throw new ConflictException("Please provide a messsage");
case true when data.Content == null:
throw new ConflictException("Please provide a selfDescriptionDocument");
}
_data = data;
}

return confirm;
public bool Confirm
{
get => _confirm;
}

public string Message
{
get => _confirm
? throw new InvalidOperationException("ValidateMessage may only be called when Confirm is false")
: _data.Message!;
}

public JsonDocument Content
{
get => _confirm
? _data.Content!
: throw new InvalidOperationException("ValidatedContent may only be called when Confirm is true");
}
}

private static bool ValidateData(SelfDescriptionResponseData data, out ValidatedResponseData validated)
{
validated = new(data);
return validated.Confirm;
}

private async Task<Guid> ProcessDocument(SdFactoryResponseModelTitle title, JsonDocument content, CancellationToken cancellationToken)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
* SPDX-License-Identifier: Apache-2.0
********************************************************************************/

using System.Net.Http.Json;
using System.Text.Json;
using System.Text.Json.Serialization;

Expand Down

0 comments on commit 4e16bc4

Please sign in to comment.