From 4058b67f761d84b4817b6b9b9169550e6977f69e Mon Sep 17 00:00:00 2001 From: lxatrhea Date: Tue, 16 Feb 2021 17:19:49 +0100 Subject: [PATCH] Bugfix add ParameterOverride --- .../Services/ChangeLog/ChangeLogService.cs | 38 ++++++++++++++----- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/CDP4WebServices.API/Services/ChangeLog/ChangeLogService.cs b/CDP4WebServices.API/Services/ChangeLog/ChangeLogService.cs index d304405b..fdf55ccb 100644 --- a/CDP4WebServices.API/Services/ChangeLog/ChangeLogService.cs +++ b/CDP4WebServices.API/Services/ChangeLog/ChangeLogService.cs @@ -26,6 +26,7 @@ namespace CDP4WebServices.API.Services.ChangeLog { using System; + using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; @@ -669,20 +670,37 @@ private void AddChangedThingIidLine(NpgsqlTransaction transaction, string partit this.ResolveService.ResolveItems(transaction, partition, resolverDictionary); var changedValueThing = service.GetShallow(transaction, dtoResolverHelper.Partition, new[] { changedValue }, securityContext).FirstOrDefault(); + var changedNamedThing = changedValueThing as INamedThing; var orgValue = metaInfoProvider.GetValue(propertyName, originalThing); - var orgValueThing = orgValue == null - ? null - : service.GetShallow(transaction, dtoResolverHelper.Partition, new[] { (Guid) orgValue }, securityContext).FirstOrDefault(); - - var changedNamedThing = changedValueThing as INamedThing; - var orgNamedThing = orgValueThing as INamedThing; - - if ((changedNamedThing ?? orgNamedThing) != null) + if (orgValue is IEnumerable) { - stringBuilder.AppendLine($" - {propertyName}: {orgNamedThing?.Name} => {changedNamedThing?.Name}"); - return; + if (changedNamedThing != null) + { + stringBuilder.AppendLine($" - {propertyName}: Added => {changedNamedThing.Name}"); + return; + } + + if (changedValueThing != null) + { + stringBuilder.AppendLine($" - {propertyName}: Added => {changedValueThing.ClassKind}"); + return; + } + } + else + { + if (orgValue != null) + { + var orgValueThing = service.GetShallow(transaction, dtoResolverHelper.Partition, new[] { (Guid) orgValue }, securityContext).FirstOrDefault(); + var orgNamedThing = orgValueThing as INamedThing; + + if ((changedNamedThing ?? orgNamedThing) != null) + { + stringBuilder.AppendLine($" - {propertyName}: {orgNamedThing?.Name} => {changedNamedThing?.Name}"); + return; + } + } } stringBuilder.AppendLine($" - {propertyName} was changed");