Skip to content
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@ dotnet_diagnostic.CA2254.severity = none
# CA1822: Mark members as static
dotnet_diagnostic.CA1822.severity = warning

# CA1725: Parameter names should match base declaration
dotnet_diagnostic.CA1725.severity = warning

# IDE0080: Remove unnecessary suppression operator
dotnet_diagnostic.IDE0080.severity = error

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ public class FormDataWrapperAnalyzer : DiagnosticAnalyzer
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics =>
[Diagnostics.FormDataWrapperGenerator.AppMetadataError];

public override void Initialize(AnalysisContext analysisContext)
public override void Initialize(AnalysisContext context)
{
analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
analysisContext.EnableConcurrentExecution();
context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);
context.EnableConcurrentExecution();

analysisContext.RegisterCompilationAction(CompilationAnalysisAction);
context.RegisterCompilationAction(CompilationAnalysisAction);
}

private void CompilationAnalysisAction(CompilationAnalysisContext compilationContext)
Expand Down
8 changes: 4 additions & 4 deletions src/Altinn.App.Analyzers/Utils/EquatableArray.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,18 @@ public EquatableArray(T[]? array)
}

/// <inheritdoc/>
public bool Equals(EquatableArray<T> array)
public bool Equals(EquatableArray<T> other)
{
return AsSpan().SequenceEqual(array.AsSpan());
return AsSpan().SequenceEqual(other.AsSpan());
}

/// <sinheritdoc/>
/// <inheritdoc/>
public override bool Equals(object? obj)
{
return obj is EquatableArray<T> array && this.Equals(array);
}

/// <sinheritdoc/>
/// <inheritdoc/>
public override int GetHashCode()
{
if (_array is null)
Expand Down
28 changes: 4 additions & 24 deletions src/Altinn.App.Api/Controllers/DataController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -535,19 +535,17 @@ public async Task<ActionResult> Get(
{
return await GetFormData(
org,
app,
instanceOwnerPartyId,
instanceGuid,
instance,
dataGuid,
dataElement,
dataTypeObject,
includeRowId,
language
);
}

return await GetBinaryData(org, app, instanceOwnerPartyId, instanceGuid, dataGuid, dataElement);
return await GetBinaryData(org, instanceOwnerPartyId, instanceGuid, dataGuid, dataElement);
}
catch (PlatformHttpException e)
{
Expand Down Expand Up @@ -898,14 +896,13 @@ private ObjectResult ExceptionResponse(Exception exception, string message)
/// <returns>The data element is returned in the body of the response</returns>
private async Task<ActionResult> GetBinaryData(
string org,
string app,
int instanceOwnerPartyId,
Guid instanceGuid,
Guid dataGuid,
DataElement dataElement
)
{
Stream dataStream = await _dataClient.GetBinaryData(org, app, instanceOwnerPartyId, instanceGuid, dataGuid);
Stream dataStream = await _dataClient.GetBinaryData(instanceOwnerPartyId, instanceGuid, dataGuid);

if (dataStream is not null)
{
Expand Down Expand Up @@ -935,26 +932,17 @@ DataElement dataElement
/// <returns>data element is returned in response body</returns>
private async Task<ActionResult> GetFormData(
string org,
string app,
int instanceOwnerId,
Guid instanceGuid,
Instance instance,
Guid dataGuid,
DataElement dataElement,
DataType dataType,
bool includeRowId,
string? language
)
{
// Get Form Data from data service. Assumes that the data element is form data.
object appModel = await _dataClient.GetFormData(
instanceGuid,
_appModel.GetModelType(dataType.AppLogic.ClassRef),
org,
app,
instanceOwnerId,
dataGuid
);
object appModel = await _dataClient.GetFormData(instance, dataElement);

if (appModel is null)
{
Expand Down Expand Up @@ -985,15 +973,7 @@ private async Task<ActionResult> GetFormData(
{
try
{
await _dataClient.UpdateData(
appModel,
instanceGuid,
appModel.GetType(),
org,
app,
instanceOwnerId,
dataGuid
);
await _dataClient.UpdateFormData(instance, appModel, dataElement);
}
catch (PlatformHttpException e) when (e.Response.StatusCode is HttpStatusCode.Forbidden)
{
Expand Down
41 changes: 2 additions & 39 deletions src/Altinn.App.Api/Controllers/InstancesController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
using Altinn.App.Core.Helpers;
using Altinn.App.Core.Helpers.Serialization;
using Altinn.App.Core.Internal.App;
using Altinn.App.Core.Internal.AppModel;
using Altinn.App.Core.Internal.Data;
using Altinn.App.Core.Internal.Events;
using Altinn.App.Core.Internal.Instances;
Expand Down Expand Up @@ -62,7 +61,6 @@ public class InstancesController : ControllerBase
private readonly IProfileClient _profileClient;

private readonly IAppMetadata _appMetadata;
private readonly IAppModel _appModel;
private readonly AppImplementationFactory _appImplementationFactory;
private readonly IPDP _pdp;
private readonly IPrefill _prefillService;
Expand All @@ -87,7 +85,6 @@ public InstancesController(
IInstanceClient instanceClient,
IDataClient dataClient,
IAppMetadata appMetadata,
IAppModel appModel,
IAuthenticationContext authenticationContext,
IPDP pdp,
IEventsClient eventsClient,
Expand All @@ -109,7 +106,6 @@ IServiceProvider serviceProvider
_appMetadata = appMetadata;
_altinnPartyClient = altinnPartyClient;
_registerClient = serviceProvider.GetRequiredService<IRegisterClient>();
_appModel = appModel;
_appImplementationFactory = serviceProvider.GetRequiredService<AppImplementationFactory>();
_pdp = pdp;
_eventsClient = eventsClient;
Expand Down Expand Up @@ -960,8 +956,6 @@ private async Task CopyDataFromSourceInstance(
Instance sourceInstance
)
{
string org = application.Org;
string app = application.AppIdentifier.App;
int instanceOwnerPartyId = int.Parse(targetInstance.InstanceOwner.PartyId, CultureInfo.InvariantCulture);

string[] sourceSplit = sourceInstance.Id.Split("/");
Expand All @@ -987,28 +981,7 @@ Instance sourceInstance
{
DataType dt = dts.First(dt => dt.Id.Equals(de.DataType, StringComparison.Ordinal));

Type type;
try
{
type = _appModel.GetModelType(dt.AppLogic.ClassRef);
}
catch (Exception altinnAppException)
{
throw new ServiceException(
HttpStatusCode.InternalServerError,
$"App.GetAppModelType failed: {altinnAppException.Message}",
altinnAppException
);
}

object data = await _dataClient.GetFormData(
sourceInstanceGuid,
type,
org,
app,
instanceOwnerPartyId,
Guid.Parse(de.Id)
);
object data = await _dataClient.GetFormData(sourceInstance, de);

if (application.CopyInstanceSettings.ExcludedDataFields != null)
{
Expand All @@ -1026,15 +999,7 @@ await _prefillService.PrefillDataModel(

ObjectUtils.InitializeAltinnRowId(data);

await _dataClient.InsertFormData(
data,
Guid.Parse(targetInstance.Id.Split("/")[1]),
type,
org,
app,
instanceOwnerPartyId,
dt.Id
);
await _dataClient.InsertFormData(targetInstance, dt.Id, data);

await UpdatePresentationTextsOnInstance(application.PresentationFields, targetInstance, dt.Id, data);
await UpdateDataValuesOnInstance(application.DataFields, targetInstance, dt.Id, data);
Expand Down Expand Up @@ -1067,8 +1032,6 @@ await _dataClient.InsertFormData(
if (binaryDataTypes.Any(dt => dt.Id.Equals(de.DataType, StringComparison.Ordinal)))
{
using var binaryDataStream = await _dataClient.GetBinaryData(
org,
app,
instanceOwnerPartyId,
sourceInstanceGuid,
Guid.Parse(de.Id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,8 +250,6 @@ ValidAltinnEFormidlingConfiguration config
usedFileNames.Add(uniqueFileName);

await using Stream stream = await _dataClient.GetBinaryData(
applicationMetadata.Org,
applicationMetadata.AppIdentifier.App,
instanceOwnerPartyId,
instanceGuid,
new Guid(dataElement.Id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,11 +75,7 @@ public async Task<bool> AuthorizeAction(UserActionAuthorizerContext context)
var signatureDataElements = instance.Data.Where(d => dataTypes.Contains(d.DataType)).ToList();
foreach (var signatureDataElement in signatureDataElements)
{
var signee = await GetSigneeFromSignDocument(
appMetadata.AppIdentifier,
context.InstanceIdentifier,
signatureDataElement
);
var signee = await GetSigneeFromSignDocument(context.InstanceIdentifier, signatureDataElement);
bool unauthorized = context.Authentication switch
{
Authenticated.User a => a.UserId.ToString(CultureInfo.InvariantCulture) == signee?.UserId,
Expand All @@ -97,14 +93,11 @@ public async Task<bool> AuthorizeAction(UserActionAuthorizerContext context)
}

private async Task<Signee?> GetSigneeFromSignDocument(
AppIdentifier appIdentifier,
InstanceIdentifier instanceIdentifier,
DataElement dataElement
)
{
await using var data = await _dataClient.GetBinaryData(
appIdentifier.Org,
appIdentifier.App,
instanceIdentifier.InstanceOwnerPartyId,
instanceIdentifier.InstanceGuid,
Guid.Parse(dataElement.Id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,6 @@ IDataClient dataClient
.WithSendersReference(element.Id)
.WithData(
await dataClient.GetDataBytes(
appMetadata.AppIdentifier.Org,
appMetadata.AppIdentifier.App,
instanceIdentifier.InstanceOwnerPartyId,
instanceIdentifier.InstanceGuid,
Guid.Parse(element.Id)
Expand Down
27 changes: 13 additions & 14 deletions src/Altinn.App.Core/Features/Telemetry/Telemetry.DataClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@ partial class Telemetry
return activity;
}

internal Activity? StartInsertFormDataActivity(Guid? instanceId, int? partyId)
internal Activity? StartUpdateDataActivity(Guid instanceId, Guid dataElementId)
{
var activity = ActivitySource.StartActivity($"{Prefix}.InsertFormData");
var activity = ActivitySource.StartActivity($"{Prefix}.UpdateData");
activity?.SetInstanceId(instanceId);
activity?.SetInstanceOwnerPartyId(partyId);
activity?.SetDataElementId(dataElementId);
return activity;
}

internal Activity? StartUpdateDataActivity(Guid instanceId, Guid dataElementId)
internal Activity? StartUpdateDataActivity(Instance instance, DataElement dataElement)
{
var activity = ActivitySource.StartActivity($"{Prefix}.UpdateData");
activity?.SetInstanceId(instanceId);
activity?.SetDataElementId(dataElementId);
activity?.SetInstanceId(instance);
activity?.SetDataElementId(dataElement);
return activity;
}

Expand All @@ -45,14 +45,6 @@ partial class Telemetry
return activity;
}

internal Activity? StartDeleteBinaryDataActivity(Guid? instanceId, int? partyId)
{
var activity = ActivitySource.StartActivity($"{Prefix}.DeleteBinaryData");
activity?.SetInstanceId(instanceId);
activity?.SetInstanceOwnerPartyId(partyId);
return activity;
}

internal Activity? StartInsertBinaryDataActivity(Guid? instanceId, int? partyId)
{
var activity = ActivitySource.StartActivity($"{Prefix}.InsertBinaryData");
Expand Down Expand Up @@ -106,6 +98,13 @@ partial class Telemetry
return activity;
}

internal Activity? StartGetFormDataActivity(Instance? instance)
{
var activity = ActivitySource.StartActivity($"{Prefix}.GetFormData");
activity?.SetInstanceId(instance);
return activity;
}

internal Activity? StartLockDataElementActivity(string? instanceId, Guid? dataGuid)
{
var activity = ActivitySource.StartActivity($"{Prefix}.LockDataElement");
Expand Down
Loading
Loading