From f2047b839c632f0e544ca229fbc12c5f18e73eb3 Mon Sep 17 00:00:00 2001 From: Dmitriy Benyuk Date: Fri, 24 Jan 2025 12:58:09 +0200 Subject: [PATCH] 22941-Fix EcomAssortmentPermissions import --- ...eb.DataIntegration.Providers.DynamicwebProvider.csproj | 2 +- src/DynamicwebBulkInsertDestinationWriter.cs | 8 ++++++++ src/DynamicwebProvider.cs | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Dynamicweb.DataIntegration.Providers.DynamicwebProvider.csproj b/src/Dynamicweb.DataIntegration.Providers.DynamicwebProvider.csproj index 4ae2c2c..55461ca 100644 --- a/src/Dynamicweb.DataIntegration.Providers.DynamicwebProvider.csproj +++ b/src/Dynamicweb.DataIntegration.Providers.DynamicwebProvider.csproj @@ -1,6 +1,6 @@  - 10.9.0 + 10.9.1 1.0.0.0 Dynamicweb Provider Dynamicweb Provider diff --git a/src/DynamicwebBulkInsertDestinationWriter.cs b/src/DynamicwebBulkInsertDestinationWriter.cs index 83b6b09..1719b79 100644 --- a/src/DynamicwebBulkInsertDestinationWriter.cs +++ b/src/DynamicwebBulkInsertDestinationWriter.cs @@ -193,6 +193,7 @@ public DynamicwebBulkInsertDestinationWriter(Mapping mapping, SqlCommand mockSql if (!string.IsNullOrEmpty(userNumber)) { userIDs = ExistingUsers.Select("AccessUserCustomerNumber='" + userNumber.Replace("'", "''") + "'").Select(r => r["AccessUserID"].ToString()).ToList(); + dataRow["AssortmentPermissionCustomerNumber"] = userNumber; } } var externalIdmapping = columnMappings.Find(cm => cm.DestinationColumn.Name == "AssortmentPermissionExternalID"); @@ -202,6 +203,7 @@ public DynamicwebBulkInsertDestinationWriter(Mapping mapping, SqlCommand mockSql if (!string.IsNullOrEmpty(externalId)) { userIDs.AddRange(ExistingUsers.Select("AccessUserExternalID='" + externalId.Replace("'", "''") + "'").Select(r => r["AccessUserID"].ToString())); + dataRow["AssortmentPermissionExternalID"] = externalId; } } var userIdMapping = columnMappings.Find(cm => cm.DestinationColumn.Name == "AssortmentPermissionAccessUserID"); @@ -211,8 +213,14 @@ public DynamicwebBulkInsertDestinationWriter(Mapping mapping, SqlCommand mockSql if (!string.IsNullOrEmpty(id)) { userIDs.AddRange(ExistingUsers.Select("AccessUserID='" + id.Replace("'", "''") + "'").Select(r => r["AccessUserID"].ToString())); + dataRow["AssortmentPermissionAccessUserID"] = id; } } + dataRow["AssortmentPermissionAssortmentID"] = assortmentID; + if (discardDuplicates && duplicateRowsHandler.IsRowDuplicate(columnMappings.Where(cm => cm.Active), Mapping, dataRow, row)) + { + return; + } foreach (string userID in userIDs.Distinct()) { DataRow relation = TableToWrite.NewRow(); diff --git a/src/DynamicwebProvider.cs b/src/DynamicwebProvider.cs index 19b5728..ca15ade 100644 --- a/src/DynamicwebProvider.cs +++ b/src/DynamicwebProvider.cs @@ -435,8 +435,8 @@ public override Schema GetOriginalSourceSchema() Table ecomAssortmentPermissionsTable = result.GetTables().Find(t => t.Name == "EcomAssortmentPermissions"); if (ecomAssortmentPermissionsTable != null) { - ecomAssortmentPermissionsTable.AddColumn(new SqlColumn(("AssortmentPermissionCustomerNumber"), typeof(string), SqlDbType.NVarChar, ecomAssortmentPermissionsTable, -1, false, false, true)); - ecomAssortmentPermissionsTable.AddColumn(new SqlColumn(("AssortmentPermissionExternalID"), typeof(string), SqlDbType.NVarChar, ecomAssortmentPermissionsTable, -1, false, false, true)); + ecomAssortmentPermissionsTable.AddColumn(new SqlColumn(("AssortmentPermissionCustomerNumber"), typeof(string), SqlDbType.NVarChar, ecomAssortmentPermissionsTable, -1, false, true, true)); + ecomAssortmentPermissionsTable.AddColumn(new SqlColumn(("AssortmentPermissionExternalID"), typeof(string), SqlDbType.NVarChar, ecomAssortmentPermissionsTable, -1, false, true, true)); } return result; }