From 74982e025b954b0c7eadfe6614c9d41e34f02027 Mon Sep 17 00:00:00 2001 From: Claire Kuang Date: Mon, 21 Apr 2025 12:52:26 +0100 Subject: [PATCH] Revert "Merge branch 'dev' into grasshopper" This reverts commit 8bcc70cced2c3811ca16c1af7fd065053b1b04a9, reversing changes made to 2ae80cc7ba3d11a46b169339be9bb7e379d46531. --- .../Bindings/RevitSendBinding.cs | 4 - .../Receive/RevitHostObjectBuilder.cs | 18 + .../Bindings/RhinoSendBinding.cs | 15 +- .../Speckle.Converters.Revit2022.Tests.csproj | 30 ++ .../packages.lock.json | 411 ++++++++++++++++++ .../Speckle.Converters.Revit2023.Tests.csproj | 30 ++ .../packages.lock.json | 411 ++++++++++++++++++ .../Speckle.Converters.Revit2024.Tests.csproj | 30 ++ .../packages.lock.json | 411 ++++++++++++++++++ .../Helpers/RevitContext.cs | 22 - .../RevitRootToHostConverter.cs | 18 +- .../Services/ScalingServiceToSpeckle.cs | 33 +- .../Raw/BaseToHostGeometryObjectConverter.cs | 33 +- .../Raw/Geometry/RegionConverterToHost.cs | 126 +++--- .../PlanViewToHostGeometryObjectConverter.cs | 94 ++-- .../ArcToSpeckleConverterTests.cs | 59 +++ .../EllipseToSpeckleConverterTests.cs | 21 + .../Speckle.Converters.Rhino7.Tests.csproj | 28 ++ .../packages.lock.json | 411 ++++++++++++++++++ .../packages.lock.json | 4 +- .../Models/DocumentModelStore.cs | 2 +- Directory.Packages.props | 6 +- .../packages.lock.json | 19 +- .../packages.lock.json | 19 +- .../Speckle.Importers.Ifc.csproj | 2 +- .../Speckle.Importers.Ifc/packages.lock.json | 19 +- Local.sln | 45 ++ .../Logging/ActivityScopeTests.cs | 16 - .../Operations/ReceiveOperationTests.cs | 137 ------ .../Operations/SendOperationTests.cs | 2 +- .../packages.lock.json | 4 +- .../ContainerRegistration.cs | 5 +- .../Operations/ReceiveOperation.cs | 15 +- .../Operations/ReceiveVersionRetriever.cs | 36 -- .../ActivityScopeTests.cs | 16 + .../ProgressDisplayManagerTests.cs | 2 +- .../Speckle.Connectors.Tests.csproj | 22 + .../packages.lock.json | 404 +++++++++++++++++ .../packages.lock.json | 4 +- .../ConverterSettingsStore.cs | 3 - .../IConverterSettingsStore.cs | 9 + .../IRootElementProvider.cs | 6 + .../RecursiveConverterResolver.cs | 1 + Sdk/Speckle.Testing/MoqTest.cs | 10 - Sdk/Speckle.Testing/Speckle.Testing.csproj | 2 - Sdk/Speckle.Testing/packages.lock.json | 211 --------- Speckle.Connectors.sln | 45 ++ 47 files changed, 2631 insertions(+), 640 deletions(-) create mode 100644 Converters/Revit/Speckle.Converters.Revit2022.Tests/Speckle.Converters.Revit2022.Tests.csproj create mode 100644 Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json create mode 100644 Converters/Revit/Speckle.Converters.Revit2023.Tests/Speckle.Converters.Revit2023.Tests.csproj create mode 100644 Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json create mode 100644 Converters/Revit/Speckle.Converters.Revit2024.Tests/Speckle.Converters.Revit2024.Tests.csproj create mode 100644 Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json create mode 100644 Converters/Rhino/Speckle.Converters.Rhino7.Tests/ArcToSpeckleConverterTests.cs create mode 100644 Converters/Rhino/Speckle.Converters.Rhino7.Tests/EllipseToSpeckleConverterTests.cs create mode 100644 Converters/Rhino/Speckle.Converters.Rhino7.Tests/Speckle.Converters.Rhino7.Tests.csproj create mode 100644 Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json delete mode 100644 Sdk/Speckle.Connectors.Common.Tests/Logging/ActivityScopeTests.cs delete mode 100644 Sdk/Speckle.Connectors.Common.Tests/Operations/ReceiveOperationTests.cs delete mode 100644 Sdk/Speckle.Connectors.Common/Operations/ReceiveVersionRetriever.cs create mode 100644 Sdk/Speckle.Connectors.Tests/ActivityScopeTests.cs rename Sdk/{Speckle.Connectors.Common.Tests/Operations => Speckle.Connectors.Tests}/ProgressDisplayManagerTests.cs (95%) create mode 100644 Sdk/Speckle.Connectors.Tests/Speckle.Connectors.Tests.csproj create mode 100644 Sdk/Speckle.Connectors.Tests/packages.lock.json create mode 100644 Sdk/Speckle.Converters.Common/IConverterSettingsStore.cs create mode 100644 Sdk/Speckle.Converters.Common/IRootElementProvider.cs create mode 100644 Sdk/Speckle.Converters.Common/RecursiveConverterResolver.cs diff --git a/Connectors/Revit/Speckle.Connectors.RevitShared/Bindings/RevitSendBinding.cs b/Connectors/Revit/Speckle.Connectors.RevitShared/Bindings/RevitSendBinding.cs index 1d40afda6..f87a4f2c0 100644 --- a/Connectors/Revit/Speckle.Connectors.RevitShared/Bindings/RevitSendBinding.cs +++ b/Connectors/Revit/Speckle.Connectors.RevitShared/Bindings/RevitSendBinding.cs @@ -263,10 +263,6 @@ internal sealed class RevitSendBinding : RevitBaseBinding, ISendBinding modelCard.SendFilter.IdMap, newSelectedObjectIds ); - - // In UI, we are not explicitly trigger UpdateModel to save the state into file for some edge cases. Instead we save it directly via document model store. - // Comment in the UI -> """ otherwise it is leading cleanup on document store bc of deferred action when we switched to the another doc""" - _store.SaveState(); } return documentElementContexts; diff --git a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs index ae7e839c5..288ac8b8c 100644 --- a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs +++ b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs @@ -33,6 +33,7 @@ public sealed class RevitHostObjectBuilder( RevitGroupBaker groupManager, RevitMaterialBaker materialBaker, RootObjectUnpacker rootObjectUnpacker, + RevitViewManager viewManager, ILogger logger, IThreadContext threadContext, RevitToHostCacheSingleton revitToHostCacheSingleton, @@ -61,6 +62,13 @@ public sealed class RevitHostObjectBuilder( CancellationToken cancellationToken ) { + // ignore Receive in any other views (e.g. Section, Elevation, ViewSheet etc.) + View activeView = converterSettings.Current.Document.ActiveView; + if (!viewManager.IsSupportedReceiveView(activeView)) + { + throw new ConversionException($"Receive in '{activeView.ViewType}' View is not supported"); + } + var baseGroupName = $"Project {projectName}: Model {modelName}"; // TODO: unify this across connectors! onOperationProgressed.Report(new("Converting", null)); @@ -201,6 +209,16 @@ public sealed class RevitHostObjectBuilder( new(Status.SUCCESS, localToGlobalMap.AtomicObject, directShapes.UniqueId, "Direct Shape") ); } + else if (result is List elementsIds) + { + // This is the case when conversion returns not a GeometryObject, but Documentation elements (Annotations, Details etc.) + // If Regions were a part of DataObject, it can return more than 1 native shape + foreach (var elementId in elementsIds) + { + conversionResults.Add(new(Status.SUCCESS, localToGlobalMap.AtomicObject, elementId, "Filled Region")); + bakedObjectIds.Add(elementId); + } + } else { throw new ConversionException($"Failed to cast {result.GetType()} to direct shape definition wrapper."); diff --git a/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs b/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs index 8d9e2d97a..a5527ce51 100644 --- a/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs +++ b/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs @@ -122,16 +122,15 @@ public sealed class RhinoSendBinding : ISendBinding // NOTE: BE CAREFUL handling things in this event handler since it is triggered whenever we save something into file! RhinoDoc.DocumentPropertiesChanged += async (_, e) => - await _topLevelExceptionHandler.CatchUnhandledAsync(async () => + { + var newUnit = e.Document.ModelUnitSystem; + if (newUnit != PreviousUnitSystem) { - var newUnit = e.Document.ModelUnitSystem; - if (newUnit != PreviousUnitSystem) - { - PreviousUnitSystem = newUnit; + PreviousUnitSystem = newUnit; - await InvalidateAllSender(); - } - }); + await InvalidateAllSender(); + } + }; RhinoDoc.AddRhinoObject += (_, e) => _topLevelExceptionHandler.CatchUnhandled(() => diff --git a/Converters/Revit/Speckle.Converters.Revit2022.Tests/Speckle.Converters.Revit2022.Tests.csproj b/Converters/Revit/Speckle.Converters.Revit2022.Tests/Speckle.Converters.Revit2022.Tests.csproj new file mode 100644 index 000000000..2f4cc84f7 --- /dev/null +++ b/Converters/Revit/Speckle.Converters.Revit2022.Tests/Speckle.Converters.Revit2022.Tests.csproj @@ -0,0 +1,30 @@ + + + + net8.0 + false + true + Debug;Release;Local + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json new file mode 100644 index 000000000..fd534a5b1 --- /dev/null +++ b/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json @@ -0,0 +1,411 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "altcover": { + "type": "Direct", + "requested": "[8.9.3, )", + "resolved": "8.9.3", + "contentHash": "auKC+pDCkLjfhFkSRaAUBu25BOmlLSqucR7YBs/Lkbdc0XRuJoklWafs1KKp+M+VoJ1f0TeMS6B/FO5IeIcu7w==" + }, + "FluentAssertions": { + "type": "Direct", + "requested": "[6.12.1, )", + "resolved": "6.12.1", + "contentHash": "hciWwryyLw3eonfqhFpOMTXyM1/auJChYslEBA+iGJyuBs5O3t/kA8YaeH4iRo/2Fe3ElSYL86C0miivtZ0f3g==", + "dependencies": { + "System.Configuration.ConfigurationManager": "4.4.0" + } + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.11.1, )", + "resolved": "17.11.1", + "contentHash": "U3Ty4BaGoEu+T2bwSko9tWqWUOU16WzSFkq6U8zve75oRBMSLTBdMAZrVNNz1Tq12aCdDom9fcOcM9QZaFHqFg==", + "dependencies": { + "Microsoft.CodeCoverage": "17.11.1", + "Microsoft.TestPlatform.TestHost": "17.11.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.0.3, )", + "resolved": "1.0.3", + "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net461": "1.0.3" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.70, )", + "resolved": "4.20.70", + "contentHash": "4rNnAwdpXJBuxqrOCzCyICXHSImOTRktCgCWXWykuF1qwoIsVvEnR7PjbMk/eLOxWvhmj5Kwt+kDV3RGUYcNwg==", + "dependencies": { + "Castle.Core": "5.1.1" + } + }, + "NUnit": { + "type": "Direct", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "MT/DpAhjtiytzhTgTqIhBuWx4y26PKfDepYUHUM+5uv4TsryHC2jwFo5e6NhWkApCm/G6kZ80dRjdJFuAxq3rg==" + }, + "NUnit.Analyzers": { + "type": "Direct", + "requested": "[4.2.0, )", + "resolved": "4.2.0", + "contentHash": "4fJojPkzdoa4nB2+p6U+fITvPnVvwWSnsmiJ/Dl30xqiL3oxNbYvfeSLVd91hOmEjoUqSwN3Z7j1aFedjqWbUA==" + }, + "NUnit3TestAdapter": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "R7e1+a4vuV/YS+ItfL7f//rG+JBvVeVLX4mHzFEZo4W1qEKl8Zz27AqvQSAqo+BtIzUCo4aAJMYa56VXS4hudw==" + }, + "PolySharp": { + "type": "Direct", + "requested": "[1.14.1, )", + "resolved": "1.14.1", + "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" + }, + "Speckle.InterfaceGenerator": { + "type": "Direct", + "requested": "[0.9.6, )", + "resolved": "0.9.6", + "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" + }, + "Speckle.Revit2022.Fakes": { + "type": "Direct", + "requested": "[0.3.1, )", + "resolved": "0.3.1", + "contentHash": "kz/taszZjEUEnqJM4qjRqEYdsrD6s9X1N56SXiB2fUiwc7MeM6H1LZaAdRYM/70tukq8OshL5fiWIQZrXrLaAg==", + "dependencies": { + "System.Drawing.Common": "8.0.6" + } + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + } + }, + "GraphQL.Client": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0", + "GraphQL.Client.Abstractions.Websocket": "6.0.0", + "System.Reactive": "5.0.0" + } + }, + "GraphQL.Client.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", + "dependencies": { + "GraphQL.Primitives": "6.0.0" + } + }, + "GraphQL.Client.Abstractions.Websocket": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0" + } + }, + "GraphQL.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "nPJqrcA5iX+Y0kqoT3a+pD/8lrW/V7ayqnEJQsTonSoPz59J8bmoQhcSN4G8+UJ64Hkuf0zuxnfuj2lkHOq4cA==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Data.Sqlite": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "KGxbPeWsQMnmQy43DSBxAFtHz3l2JX8EWBSGUCvT3CuZ8KsuzbkqMIJMDOxWtG8eZSoCDI04aiVQjWuuV8HmSw==", + "dependencies": { + "Microsoft.Data.Sqlite.Core": "7.0.5", + "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" + } + }, + "Microsoft.Data.Sqlite.Core": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "FTerRmQPqHrCrnoUzhBu+E+1DNGwyrAMLqHkAqOOOu5pGfyMOj8qQUBxI/gDtWtG11p49UxSfWmBzRNlwZqfUg==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "nOP8R1mVb/6mZtm2qgAJXn/LFm/2kMjHDAg/QJLFG6CuWYJtaD3p1BwQhufBVvRzL9ceJ/xF0SQ0qsI2GkDQAA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "65MrmXCziWaQFrI0UHkQbesrX5wTwf9XPjY5yFm/VkgJKFJ5gqvXRoXjIZcf2wLi5ZlwGz/oMYfyURVCWbM5iw==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "vJ9xvOZCnUAIHcGC3SU35r3HKmHTVIeHzo6u/qzlHAqD8m6xv92MLin4oJntTvkpKxVX3vI1GFFkIQtU3AdlsQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.2.0" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "UpZLNLBpIZ0GTebShui7xXYh6DmBHjWM8NxGxZbdQh/bPZ5e6YswqI+bru6BnEL5eWiOdodsXtEz3FROcgi/qg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Primitives": "2.2.0", + "System.ComponentModel.Annotations": "4.5.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies.net461": { + "type": "Transitive", + "resolved": "1.0.3", + "contentHash": "AmOJZwCqnOCNp6PPcf9joyogScWLtwy0M1WkqfEQ0M9nYwyDD7EX9ZjscKS5iYnyvteX7kzSKFCKt9I9dXA6mA==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "E2jZqAU6JeWEVsyOEOrSW1o1bpHLgb25ypvKNB/moBXPVsFYBPd/Jwi7OrYahG50J83LfHzezYI+GaEkpAotiA==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "DnG+GOqJXO/CkoqlJWeDFTgPhqD/V6VqUIL3vINizCWZ3X+HshCtbbyDdSHQQEjrc2Sl/K3yaxX6s+5LFEdYuw==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.11.1", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.Win32.SystemEvents": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "9opKRyOKMCi2xJ7Bj7kxtZ1r9vbzosMvRrdEhVhDz8j8MoBGgB+WmC94yH839NPH+BclAjtQ/pyagvi/8gDLkw==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "Speckle.Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.2", + "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" + }, + "SQLitePCLRaw.bundle_e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", + "dependencies": { + "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", + "SQLitePCLRaw.provider.e_sqlite3": "2.1.4" + } + }, + "SQLitePCLRaw.core": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "SQLitePCLRaw.lib.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" + }, + "SQLitePCLRaw.provider.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "System.ComponentModel.Annotations": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==" + }, + "System.Configuration.ConfigurationManager": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==", + "dependencies": { + "System.Security.Cryptography.ProtectedData": "4.4.0" + } + }, + "System.Diagnostics.EventLog": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + }, + "System.Drawing.Common": { + "type": "Transitive", + "resolved": "8.0.6", + "contentHash": "aSwRnJzz6fZ73JvWMMG0KvBwOnXsBTFtfHLriQyAPrDIZ+NrDfl15GWbO/A35k0dtH77D7jfxzEcFF7RONtU/w==", + "dependencies": { + "Microsoft.Win32.SystemEvents": "8.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.3", + "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" + }, + "System.Reactive": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" + }, + "speckle.converters.common": { + "type": "Project", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", + "Speckle.Objects": "[3.2.0, )" + } + }, + "speckle.testing": { + "type": "Project", + "dependencies": { + "Moq": "[4.20.70, )", + "NUnit": "[4.1.0, )" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "2.2.0", + "contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" + }, + "Microsoft.Extensions.Logging": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "Nxqhadc9FCmFHzU+fz3oc8sFlE6IadViYg8dfUdGzJZ2JUxnCsRghBhhOWdM4B2zSZqEc+0BjliBh/oNdRZuig==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging.Abstractions": "2.2.0", + "Microsoft.Extensions.Options": "2.2.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" + }, + "Speckle.DoubleNumerics": { + "type": "CentralTransitive", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "20DtS+FsDRsOD9+AU3TwNFZ0qrKo5f6f7B5ZR9wStsIHHHC9k7DpjbCvuNtmnSjx54MD+TJC7wV2f5iyGVPj1A==" + }, + "Speckle.Objects": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "ZgsbDz31Rq87Gtej2soLjTTBaRnnERKvs0QCT2AjGD4Vn5QwqnagPDqFTndWz+w6vG4t2hZH56QfqAmyIiuPag==", + "dependencies": { + "Speckle.Sdk": "3.2.0" + } + }, + "Speckle.Sdk": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "DI3ljov8FMIAIosm3quAXlgYKWS+AJriaFC9dGBJh4y1xg4jvD8Tpx4h7Wd3Bib9BsH6Bhe5BUwACLv7dJKxIg==", + "dependencies": { + "GraphQL.Client": "6.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.Data.Sqlite": "7.0.5", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging": "2.2.0", + "Speckle.DoubleNumerics": "4.1.0", + "Speckle.Newtonsoft.Json": "13.0.2", + "Speckle.Sdk.Dependencies": "3.2.0" + } + }, + "Speckle.Sdk.Dependencies": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "wgUjHJN8lPF47tAht+2gm8yF2dIQXxTXhoJttzb+89o2ej1jrdwxTUQP1EtfjnixK6QApJ809QQqTbJm5sdaqA==" + } + } + } +} \ No newline at end of file diff --git a/Converters/Revit/Speckle.Converters.Revit2023.Tests/Speckle.Converters.Revit2023.Tests.csproj b/Converters/Revit/Speckle.Converters.Revit2023.Tests/Speckle.Converters.Revit2023.Tests.csproj new file mode 100644 index 000000000..f2c9896b8 --- /dev/null +++ b/Converters/Revit/Speckle.Converters.Revit2023.Tests/Speckle.Converters.Revit2023.Tests.csproj @@ -0,0 +1,30 @@ + + + + net8.0 + false + true + Debug;Release;Local + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json new file mode 100644 index 000000000..fe2c0221c --- /dev/null +++ b/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json @@ -0,0 +1,411 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "altcover": { + "type": "Direct", + "requested": "[8.9.3, )", + "resolved": "8.9.3", + "contentHash": "auKC+pDCkLjfhFkSRaAUBu25BOmlLSqucR7YBs/Lkbdc0XRuJoklWafs1KKp+M+VoJ1f0TeMS6B/FO5IeIcu7w==" + }, + "FluentAssertions": { + "type": "Direct", + "requested": "[6.12.1, )", + "resolved": "6.12.1", + "contentHash": "hciWwryyLw3eonfqhFpOMTXyM1/auJChYslEBA+iGJyuBs5O3t/kA8YaeH4iRo/2Fe3ElSYL86C0miivtZ0f3g==", + "dependencies": { + "System.Configuration.ConfigurationManager": "4.4.0" + } + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.11.1, )", + "resolved": "17.11.1", + "contentHash": "U3Ty4BaGoEu+T2bwSko9tWqWUOU16WzSFkq6U8zve75oRBMSLTBdMAZrVNNz1Tq12aCdDom9fcOcM9QZaFHqFg==", + "dependencies": { + "Microsoft.CodeCoverage": "17.11.1", + "Microsoft.TestPlatform.TestHost": "17.11.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.0.3, )", + "resolved": "1.0.3", + "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net461": "1.0.3" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.70, )", + "resolved": "4.20.70", + "contentHash": "4rNnAwdpXJBuxqrOCzCyICXHSImOTRktCgCWXWykuF1qwoIsVvEnR7PjbMk/eLOxWvhmj5Kwt+kDV3RGUYcNwg==", + "dependencies": { + "Castle.Core": "5.1.1" + } + }, + "NUnit": { + "type": "Direct", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "MT/DpAhjtiytzhTgTqIhBuWx4y26PKfDepYUHUM+5uv4TsryHC2jwFo5e6NhWkApCm/G6kZ80dRjdJFuAxq3rg==" + }, + "NUnit.Analyzers": { + "type": "Direct", + "requested": "[4.2.0, )", + "resolved": "4.2.0", + "contentHash": "4fJojPkzdoa4nB2+p6U+fITvPnVvwWSnsmiJ/Dl30xqiL3oxNbYvfeSLVd91hOmEjoUqSwN3Z7j1aFedjqWbUA==" + }, + "NUnit3TestAdapter": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "R7e1+a4vuV/YS+ItfL7f//rG+JBvVeVLX4mHzFEZo4W1qEKl8Zz27AqvQSAqo+BtIzUCo4aAJMYa56VXS4hudw==" + }, + "PolySharp": { + "type": "Direct", + "requested": "[1.14.1, )", + "resolved": "1.14.1", + "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" + }, + "Speckle.InterfaceGenerator": { + "type": "Direct", + "requested": "[0.9.6, )", + "resolved": "0.9.6", + "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" + }, + "Speckle.Revit2023.Fakes": { + "type": "Direct", + "requested": "[0.3.1, )", + "resolved": "0.3.1", + "contentHash": "uHYAqg2ljL5WpYYAQujgiS6olkGD31lXToyc0yIugAi0cnHtP5z95hjzg3QBbmFizVYyD5n2IwFnR49UiSVfJg==", + "dependencies": { + "System.Drawing.Common": "8.0.6" + } + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + } + }, + "GraphQL.Client": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0", + "GraphQL.Client.Abstractions.Websocket": "6.0.0", + "System.Reactive": "5.0.0" + } + }, + "GraphQL.Client.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", + "dependencies": { + "GraphQL.Primitives": "6.0.0" + } + }, + "GraphQL.Client.Abstractions.Websocket": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0" + } + }, + "GraphQL.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "nPJqrcA5iX+Y0kqoT3a+pD/8lrW/V7ayqnEJQsTonSoPz59J8bmoQhcSN4G8+UJ64Hkuf0zuxnfuj2lkHOq4cA==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Data.Sqlite": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "KGxbPeWsQMnmQy43DSBxAFtHz3l2JX8EWBSGUCvT3CuZ8KsuzbkqMIJMDOxWtG8eZSoCDI04aiVQjWuuV8HmSw==", + "dependencies": { + "Microsoft.Data.Sqlite.Core": "7.0.5", + "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" + } + }, + "Microsoft.Data.Sqlite.Core": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "FTerRmQPqHrCrnoUzhBu+E+1DNGwyrAMLqHkAqOOOu5pGfyMOj8qQUBxI/gDtWtG11p49UxSfWmBzRNlwZqfUg==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "nOP8R1mVb/6mZtm2qgAJXn/LFm/2kMjHDAg/QJLFG6CuWYJtaD3p1BwQhufBVvRzL9ceJ/xF0SQ0qsI2GkDQAA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "65MrmXCziWaQFrI0UHkQbesrX5wTwf9XPjY5yFm/VkgJKFJ5gqvXRoXjIZcf2wLi5ZlwGz/oMYfyURVCWbM5iw==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "vJ9xvOZCnUAIHcGC3SU35r3HKmHTVIeHzo6u/qzlHAqD8m6xv92MLin4oJntTvkpKxVX3vI1GFFkIQtU3AdlsQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.2.0" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "UpZLNLBpIZ0GTebShui7xXYh6DmBHjWM8NxGxZbdQh/bPZ5e6YswqI+bru6BnEL5eWiOdodsXtEz3FROcgi/qg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Primitives": "2.2.0", + "System.ComponentModel.Annotations": "4.5.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies.net461": { + "type": "Transitive", + "resolved": "1.0.3", + "contentHash": "AmOJZwCqnOCNp6PPcf9joyogScWLtwy0M1WkqfEQ0M9nYwyDD7EX9ZjscKS5iYnyvteX7kzSKFCKt9I9dXA6mA==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "E2jZqAU6JeWEVsyOEOrSW1o1bpHLgb25ypvKNB/moBXPVsFYBPd/Jwi7OrYahG50J83LfHzezYI+GaEkpAotiA==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "DnG+GOqJXO/CkoqlJWeDFTgPhqD/V6VqUIL3vINizCWZ3X+HshCtbbyDdSHQQEjrc2Sl/K3yaxX6s+5LFEdYuw==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.11.1", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.Win32.SystemEvents": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "9opKRyOKMCi2xJ7Bj7kxtZ1r9vbzosMvRrdEhVhDz8j8MoBGgB+WmC94yH839NPH+BclAjtQ/pyagvi/8gDLkw==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "Speckle.Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.2", + "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" + }, + "SQLitePCLRaw.bundle_e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", + "dependencies": { + "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", + "SQLitePCLRaw.provider.e_sqlite3": "2.1.4" + } + }, + "SQLitePCLRaw.core": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "SQLitePCLRaw.lib.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" + }, + "SQLitePCLRaw.provider.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "System.ComponentModel.Annotations": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==" + }, + "System.Configuration.ConfigurationManager": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==", + "dependencies": { + "System.Security.Cryptography.ProtectedData": "4.4.0" + } + }, + "System.Diagnostics.EventLog": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + }, + "System.Drawing.Common": { + "type": "Transitive", + "resolved": "8.0.6", + "contentHash": "aSwRnJzz6fZ73JvWMMG0KvBwOnXsBTFtfHLriQyAPrDIZ+NrDfl15GWbO/A35k0dtH77D7jfxzEcFF7RONtU/w==", + "dependencies": { + "Microsoft.Win32.SystemEvents": "8.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.3", + "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" + }, + "System.Reactive": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" + }, + "speckle.converters.common": { + "type": "Project", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", + "Speckle.Objects": "[3.2.0, )" + } + }, + "speckle.testing": { + "type": "Project", + "dependencies": { + "Moq": "[4.20.70, )", + "NUnit": "[4.1.0, )" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "2.2.0", + "contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" + }, + "Microsoft.Extensions.Logging": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "Nxqhadc9FCmFHzU+fz3oc8sFlE6IadViYg8dfUdGzJZ2JUxnCsRghBhhOWdM4B2zSZqEc+0BjliBh/oNdRZuig==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging.Abstractions": "2.2.0", + "Microsoft.Extensions.Options": "2.2.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" + }, + "Speckle.DoubleNumerics": { + "type": "CentralTransitive", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "20DtS+FsDRsOD9+AU3TwNFZ0qrKo5f6f7B5ZR9wStsIHHHC9k7DpjbCvuNtmnSjx54MD+TJC7wV2f5iyGVPj1A==" + }, + "Speckle.Objects": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "ZgsbDz31Rq87Gtej2soLjTTBaRnnERKvs0QCT2AjGD4Vn5QwqnagPDqFTndWz+w6vG4t2hZH56QfqAmyIiuPag==", + "dependencies": { + "Speckle.Sdk": "3.2.0" + } + }, + "Speckle.Sdk": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "DI3ljov8FMIAIosm3quAXlgYKWS+AJriaFC9dGBJh4y1xg4jvD8Tpx4h7Wd3Bib9BsH6Bhe5BUwACLv7dJKxIg==", + "dependencies": { + "GraphQL.Client": "6.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.Data.Sqlite": "7.0.5", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging": "2.2.0", + "Speckle.DoubleNumerics": "4.1.0", + "Speckle.Newtonsoft.Json": "13.0.2", + "Speckle.Sdk.Dependencies": "3.2.0" + } + }, + "Speckle.Sdk.Dependencies": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "wgUjHJN8lPF47tAht+2gm8yF2dIQXxTXhoJttzb+89o2ej1jrdwxTUQP1EtfjnixK6QApJ809QQqTbJm5sdaqA==" + } + } + } +} \ No newline at end of file diff --git a/Converters/Revit/Speckle.Converters.Revit2024.Tests/Speckle.Converters.Revit2024.Tests.csproj b/Converters/Revit/Speckle.Converters.Revit2024.Tests/Speckle.Converters.Revit2024.Tests.csproj new file mode 100644 index 000000000..54573dcd1 --- /dev/null +++ b/Converters/Revit/Speckle.Converters.Revit2024.Tests/Speckle.Converters.Revit2024.Tests.csproj @@ -0,0 +1,30 @@ + + + + net8.0 + false + true + Debug;Release;Local + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json new file mode 100644 index 000000000..4d3f46393 --- /dev/null +++ b/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json @@ -0,0 +1,411 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "altcover": { + "type": "Direct", + "requested": "[8.9.3, )", + "resolved": "8.9.3", + "contentHash": "auKC+pDCkLjfhFkSRaAUBu25BOmlLSqucR7YBs/Lkbdc0XRuJoklWafs1KKp+M+VoJ1f0TeMS6B/FO5IeIcu7w==" + }, + "FluentAssertions": { + "type": "Direct", + "requested": "[6.12.1, )", + "resolved": "6.12.1", + "contentHash": "hciWwryyLw3eonfqhFpOMTXyM1/auJChYslEBA+iGJyuBs5O3t/kA8YaeH4iRo/2Fe3ElSYL86C0miivtZ0f3g==", + "dependencies": { + "System.Configuration.ConfigurationManager": "4.4.0" + } + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.11.1, )", + "resolved": "17.11.1", + "contentHash": "U3Ty4BaGoEu+T2bwSko9tWqWUOU16WzSFkq6U8zve75oRBMSLTBdMAZrVNNz1Tq12aCdDom9fcOcM9QZaFHqFg==", + "dependencies": { + "Microsoft.CodeCoverage": "17.11.1", + "Microsoft.TestPlatform.TestHost": "17.11.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.0.3, )", + "resolved": "1.0.3", + "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net461": "1.0.3" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.70, )", + "resolved": "4.20.70", + "contentHash": "4rNnAwdpXJBuxqrOCzCyICXHSImOTRktCgCWXWykuF1qwoIsVvEnR7PjbMk/eLOxWvhmj5Kwt+kDV3RGUYcNwg==", + "dependencies": { + "Castle.Core": "5.1.1" + } + }, + "NUnit": { + "type": "Direct", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "MT/DpAhjtiytzhTgTqIhBuWx4y26PKfDepYUHUM+5uv4TsryHC2jwFo5e6NhWkApCm/G6kZ80dRjdJFuAxq3rg==" + }, + "NUnit.Analyzers": { + "type": "Direct", + "requested": "[4.2.0, )", + "resolved": "4.2.0", + "contentHash": "4fJojPkzdoa4nB2+p6U+fITvPnVvwWSnsmiJ/Dl30xqiL3oxNbYvfeSLVd91hOmEjoUqSwN3Z7j1aFedjqWbUA==" + }, + "NUnit3TestAdapter": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "R7e1+a4vuV/YS+ItfL7f//rG+JBvVeVLX4mHzFEZo4W1qEKl8Zz27AqvQSAqo+BtIzUCo4aAJMYa56VXS4hudw==" + }, + "PolySharp": { + "type": "Direct", + "requested": "[1.14.1, )", + "resolved": "1.14.1", + "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" + }, + "Speckle.InterfaceGenerator": { + "type": "Direct", + "requested": "[0.9.6, )", + "resolved": "0.9.6", + "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" + }, + "Speckle.Revit2024.Fakes": { + "type": "Direct", + "requested": "[0.3.1, )", + "resolved": "0.3.1", + "contentHash": "01T15eXABKlHKNBKMfehlnH+Ki5r/0Ozx6sFMCTSnFSF5u12g+Dkefo+GsEIiS1GxuMlEb+BKZbCrFmp8GLaHQ==", + "dependencies": { + "System.Drawing.Common": "8.0.6" + } + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + } + }, + "GraphQL.Client": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0", + "GraphQL.Client.Abstractions.Websocket": "6.0.0", + "System.Reactive": "5.0.0" + } + }, + "GraphQL.Client.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", + "dependencies": { + "GraphQL.Primitives": "6.0.0" + } + }, + "GraphQL.Client.Abstractions.Websocket": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0" + } + }, + "GraphQL.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "nPJqrcA5iX+Y0kqoT3a+pD/8lrW/V7ayqnEJQsTonSoPz59J8bmoQhcSN4G8+UJ64Hkuf0zuxnfuj2lkHOq4cA==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Data.Sqlite": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "KGxbPeWsQMnmQy43DSBxAFtHz3l2JX8EWBSGUCvT3CuZ8KsuzbkqMIJMDOxWtG8eZSoCDI04aiVQjWuuV8HmSw==", + "dependencies": { + "Microsoft.Data.Sqlite.Core": "7.0.5", + "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" + } + }, + "Microsoft.Data.Sqlite.Core": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "FTerRmQPqHrCrnoUzhBu+E+1DNGwyrAMLqHkAqOOOu5pGfyMOj8qQUBxI/gDtWtG11p49UxSfWmBzRNlwZqfUg==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "nOP8R1mVb/6mZtm2qgAJXn/LFm/2kMjHDAg/QJLFG6CuWYJtaD3p1BwQhufBVvRzL9ceJ/xF0SQ0qsI2GkDQAA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "65MrmXCziWaQFrI0UHkQbesrX5wTwf9XPjY5yFm/VkgJKFJ5gqvXRoXjIZcf2wLi5ZlwGz/oMYfyURVCWbM5iw==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "vJ9xvOZCnUAIHcGC3SU35r3HKmHTVIeHzo6u/qzlHAqD8m6xv92MLin4oJntTvkpKxVX3vI1GFFkIQtU3AdlsQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.2.0" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "UpZLNLBpIZ0GTebShui7xXYh6DmBHjWM8NxGxZbdQh/bPZ5e6YswqI+bru6BnEL5eWiOdodsXtEz3FROcgi/qg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Primitives": "2.2.0", + "System.ComponentModel.Annotations": "4.5.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies.net461": { + "type": "Transitive", + "resolved": "1.0.3", + "contentHash": "AmOJZwCqnOCNp6PPcf9joyogScWLtwy0M1WkqfEQ0M9nYwyDD7EX9ZjscKS5iYnyvteX7kzSKFCKt9I9dXA6mA==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "E2jZqAU6JeWEVsyOEOrSW1o1bpHLgb25ypvKNB/moBXPVsFYBPd/Jwi7OrYahG50J83LfHzezYI+GaEkpAotiA==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "DnG+GOqJXO/CkoqlJWeDFTgPhqD/V6VqUIL3vINizCWZ3X+HshCtbbyDdSHQQEjrc2Sl/K3yaxX6s+5LFEdYuw==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.11.1", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.Win32.SystemEvents": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "9opKRyOKMCi2xJ7Bj7kxtZ1r9vbzosMvRrdEhVhDz8j8MoBGgB+WmC94yH839NPH+BclAjtQ/pyagvi/8gDLkw==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "Speckle.Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.2", + "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" + }, + "SQLitePCLRaw.bundle_e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", + "dependencies": { + "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", + "SQLitePCLRaw.provider.e_sqlite3": "2.1.4" + } + }, + "SQLitePCLRaw.core": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "SQLitePCLRaw.lib.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" + }, + "SQLitePCLRaw.provider.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "System.ComponentModel.Annotations": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==" + }, + "System.Configuration.ConfigurationManager": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==", + "dependencies": { + "System.Security.Cryptography.ProtectedData": "4.4.0" + } + }, + "System.Diagnostics.EventLog": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + }, + "System.Drawing.Common": { + "type": "Transitive", + "resolved": "8.0.6", + "contentHash": "aSwRnJzz6fZ73JvWMMG0KvBwOnXsBTFtfHLriQyAPrDIZ+NrDfl15GWbO/A35k0dtH77D7jfxzEcFF7RONtU/w==", + "dependencies": { + "Microsoft.Win32.SystemEvents": "8.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.3", + "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" + }, + "System.Reactive": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" + }, + "speckle.converters.common": { + "type": "Project", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", + "Speckle.Objects": "[3.2.0, )" + } + }, + "speckle.testing": { + "type": "Project", + "dependencies": { + "Moq": "[4.20.70, )", + "NUnit": "[4.1.0, )" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "2.2.0", + "contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" + }, + "Microsoft.Extensions.Logging": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "Nxqhadc9FCmFHzU+fz3oc8sFlE6IadViYg8dfUdGzJZ2JUxnCsRghBhhOWdM4B2zSZqEc+0BjliBh/oNdRZuig==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging.Abstractions": "2.2.0", + "Microsoft.Extensions.Options": "2.2.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" + }, + "Speckle.DoubleNumerics": { + "type": "CentralTransitive", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "20DtS+FsDRsOD9+AU3TwNFZ0qrKo5f6f7B5ZR9wStsIHHHC9k7DpjbCvuNtmnSjx54MD+TJC7wV2f5iyGVPj1A==" + }, + "Speckle.Objects": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "ZgsbDz31Rq87Gtej2soLjTTBaRnnERKvs0QCT2AjGD4Vn5QwqnagPDqFTndWz+w6vG4t2hZH56QfqAmyIiuPag==", + "dependencies": { + "Speckle.Sdk": "3.2.0" + } + }, + "Speckle.Sdk": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "DI3ljov8FMIAIosm3quAXlgYKWS+AJriaFC9dGBJh4y1xg4jvD8Tpx4h7Wd3Bib9BsH6Bhe5BUwACLv7dJKxIg==", + "dependencies": { + "GraphQL.Client": "6.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.Data.Sqlite": "7.0.5", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging": "2.2.0", + "Speckle.DoubleNumerics": "4.1.0", + "Speckle.Newtonsoft.Json": "13.0.2", + "Speckle.Sdk.Dependencies": "3.2.0" + } + }, + "Speckle.Sdk.Dependencies": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "wgUjHJN8lPF47tAht+2gm8yF2dIQXxTXhoJttzb+89o2ej1jrdwxTUQP1EtfjnixK6QApJ809QQqTbJm5sdaqA==" + } + } + } +} \ No newline at end of file diff --git a/Converters/Revit/Speckle.Converters.RevitShared/Helpers/RevitContext.cs b/Converters/Revit/Speckle.Converters.RevitShared/Helpers/RevitContext.cs index 214da6927..59c3892a7 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/Helpers/RevitContext.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/Helpers/RevitContext.cs @@ -1,7 +1,4 @@ -using Autodesk.Revit.DB; using Autodesk.Revit.UI; -using Speckle.Sdk; -using Speckle.Sdk.Common; namespace Speckle.Converters.RevitShared.Helpers; @@ -22,23 +19,4 @@ public class RevitContext _uiApplication = value; } } - - /// - /// Gets the scaling factor for the main document. - /// This should be used for all scaling operations to ensure consistency - /// between main model and linked model elements. - /// - /// The scaling factor for converting from internal units to the main document's units - public double GetMainDocumentScalingFactor() - { - var mainModelDoc = - UIApplication.NotNull().ActiveUIDocument?.Document - ?? throw new SpeckleException("Unable to retrieve active UI document"); - - DB.Units documentUnits = mainModelDoc.GetUnits(); - FormatOptions formatOptions = documentUnits.GetFormatOptions(SpecTypeId.Length); - var lengthUnitsTypeId = formatOptions.GetUnitTypeId(); - - return UnitUtils.ConvertFromInternalUnits(1, lengthUnitsTypeId); - } } diff --git a/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToHostConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToHostConverter.cs index a9824ed5d..9ca6b0c16 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToHostConverter.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToHostConverter.cs @@ -14,26 +14,28 @@ public class RevitRootToHostConverter : IRootToHostConverter { private readonly IConverterSettingsStore _converterSettings; private readonly ITypedConverter> _baseToGeometryConverter; + private readonly ITypedConverter> _planViewToGeometryConverter; public RevitRootToHostConverter( + ITypedConverter> planViewToGeometryConverter, ITypedConverter> baseToGeometryConverter, IConverterSettingsStore converterSettings ) { + _planViewToGeometryConverter = planViewToGeometryConverter; _baseToGeometryConverter = baseToGeometryConverter; _converterSettings = converterSettings; } public object Convert(Base target) { - // TODO: We should scope 2d elements properly in revit. It is outside of reference geometry workflows right now. - // // If ActiveView is a 2d view, use PlanView converter (will ignore DirectShapes) - // // Unsupported views already filtered out in HostObjectBuilder - // View activeView = _converterSettings.Current.Document.ActiveView; - // if (activeView.ViewType != ViewType.ThreeD) - // { - // return _planViewToGeometryConverter.Convert(target); - // } + // If ActiveView is a 2d view, use PlanView converter (will ignore DirectShapes) + // Unsupported views already filtered out in HostObjectBuilder + View activeView = _converterSettings.Current.Document.ActiveView; + if (activeView.ViewType != ViewType.ThreeD) + { + return _planViewToGeometryConverter.Convert(target); + } // Use default behavior and covert everything to DirectShapes List geometryObjects = _baseToGeometryConverter.Convert(target); diff --git a/Converters/Revit/Speckle.Converters.RevitShared/Services/ScalingServiceToSpeckle.cs b/Converters/Revit/Speckle.Converters.RevitShared/Services/ScalingServiceToSpeckle.cs index 6e45129d5..c081a4629 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/Services/ScalingServiceToSpeckle.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/Services/ScalingServiceToSpeckle.cs @@ -1,33 +1,42 @@ using Autodesk.Revit.DB; -using Speckle.Converters.RevitShared.Helpers; +using Speckle.Converters.Common; +using Speckle.Converters.RevitShared.Settings; using Speckle.InterfaceGenerator; namespace Speckle.Converters.RevitShared.Services; -// POC: feels like this is a context thing, and we should be calculating this occasionally? -// needs some thought as to how it could be done, could leave as is for now +// POC: feels like this is a context thing and we should be calculating this occasionally? +// needs some thought as to how it could be be done, could leave as is for now [GenerateAutoInterface] public sealed class ScalingServiceToSpeckle : IScalingServiceToSpeckle { private readonly double _defaultLengthConversionFactor; // POC: this seems like the reverse relationship - public ScalingServiceToSpeckle(RevitContext revitContext) + public ScalingServiceToSpeckle(IConverterSettingsStore converterSettings) { - // Always use the main document's scaling factor to ensure consistency for both main model and linked model elements - // this need became apparent for CNX-1431 fix - _defaultLengthConversionFactor = revitContext.GetMainDocumentScalingFactor(); + // POC: this is accurate for the current context stack + Units documentUnits = converterSettings.Current.Document.GetUnits(); + FormatOptions formatOptions = documentUnits.GetFormatOptions(SpecTypeId.Length); + var lengthUnitsTypeId = formatOptions.GetUnitTypeId(); + _defaultLengthConversionFactor = ScaleStatic(1, lengthUnitsTypeId); } // POC: throughout Revit conversions there's lots of comparison to check the units are valid - // atm we assume that the scaling is fixed for the duration of a conversion and completely dependent on the main - // model settings (not linked models), hence the explicit GetMainDocumentScalingFactor in RevitContext + // atm we seem to be expecting that this is correct and that the scaling will be fixed for the duration + // of a conversion, but... I have some concerns that the units and the conversion may change, for instance, for linked documents? + // this needs to be considered and perahps scaling should be part of the context, or at least part of the IRevitConversionContextStack public double ScaleLength(double length) => length * _defaultLengthConversionFactor; // POC: not sure about this??? - public double Scale(double value, ForgeTypeId forgeTypeId) => ScaleStatic(value, forgeTypeId); + public double Scale(double value, ForgeTypeId forgeTypeId) + { + return ScaleStatic(value, forgeTypeId); + } // POC: not sure why this is needed??? - private static double ScaleStatic(double value, ForgeTypeId forgeTypeId) => - UnitUtils.ConvertFromInternalUnits(value, forgeTypeId); + private static double ScaleStatic(double value, ForgeTypeId forgeTypeId) + { + return UnitUtils.ConvertFromInternalUnits(value, forgeTypeId); + } } diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/BaseToHostGeometryObjectConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/BaseToHostGeometryObjectConverter.cs index 9b9b987fb..f16afcbdd 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/BaseToHostGeometryObjectConverter.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/BaseToHostGeometryObjectConverter.cs @@ -7,13 +7,26 @@ using Speckle.Sdk.Models.Extensions; namespace Speckle.Converters.RevitShared.ToSpeckle; -public class BaseToHostGeometryObjectConverter( - ITypedConverter pointConverter, - ITypedConverter curveConverter, - ITypedConverter> meshConverter, - ITypedConverter> encodedObjectConverter -) : ITypedConverter> +public class BaseToHostGeometryObjectConverter : ITypedConverter> { + private readonly ITypedConverter _pointConverter; + private readonly ITypedConverter _curveConverter; + private readonly ITypedConverter> _meshConverter; + private readonly ITypedConverter> _encodedObjectConverter; + + public BaseToHostGeometryObjectConverter( + ITypedConverter pointConverter, + ITypedConverter curveConverter, + ITypedConverter> meshConverter, + ITypedConverter> encodedObjectConverter + ) + { + _pointConverter = pointConverter; + _curveConverter = curveConverter; + _meshConverter = meshConverter; + _encodedObjectConverter = encodedObjectConverter; + } + public List Convert(Base target) { List result = new(); @@ -21,19 +34,19 @@ public class BaseToHostGeometryObjectConverter( switch (target) { case SOG.Point point: - var xyz = pointConverter.Convert(point); + var xyz = _pointConverter.Convert(point); result.Add(DB.Point.Create(xyz)); break; case ICurve curve: - var curves = curveConverter.Convert(curve).Cast(); + var curves = _curveConverter.Convert(curve).Cast(); result.AddRange(curves); break; case SOG.Mesh mesh: - var meshes = meshConverter.Convert(mesh).Cast(); + var meshes = _meshConverter.Convert(mesh).Cast(); result.AddRange(meshes); break; case SOG.IRawEncodedObject elon: - var res = encodedObjectConverter.Convert(elon); + var res = _encodedObjectConverter.Convert(elon); result.AddRange(res); break; default: diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/RegionConverterToHost.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/RegionConverterToHost.cs index 78808bf6d..da2098c05 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/RegionConverterToHost.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/Geometry/RegionConverterToHost.cs @@ -1,65 +1,63 @@ -// TODO: We should scope 2d elements properly in revit. It is outside of reference geometry workflows right now. +using Autodesk.Revit.DB; +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; +using Speckle.Converters.RevitShared.Settings; +using Speckle.Objects; -// using Autodesk.Revit.DB; -// using Speckle.Converters.Common; -// using Speckle.Converters.Common.Objects; -// using Speckle.Converters.RevitShared.Settings; -// using Speckle.Objects; -// -// namespace Speckle.Converters.RevitShared.ToHost.TopLevel; -// -// public class RegionConverterToHost : ITypedConverter -// { -// private readonly IConverterSettingsStore _converterSettings; -// private readonly ITypedConverter _curveConverter; -// -// public RegionConverterToHost( -// IConverterSettingsStore converterSettings, -// ITypedConverter curveConverter -// ) -// { -// _converterSettings = converterSettings; -// _curveConverter = curveConverter; -// } -// -// public string Convert(SOG.Region target) -// { -// List resultList = new(); -// List profileLoops = new(); -// -// // convert boundary loop and add to profileLoops list -// CurveLoop boundaryLoop = new(); -// List outerLoop = _curveConverter.Convert(target.boundary).Cast().ToList(); -// outerLoop.ForEach(x => boundaryLoop.Append(x)); -// profileLoops.Add(boundaryLoop); -// -// // convert inner loops and add to profileLoops list -// List> innerLoops = target -// .innerLoops.Select(x => _curveConverter.Convert(x).Cast().ToList()) -// .ToList(); -// foreach (var innerLoop in innerLoops) -// { -// CurveLoop voidLoop = new(); -// innerLoop.ForEach(x => voidLoop.Append(x)); -// profileLoops.Add(voidLoop); -// } -// -// // get FilledRegionType from the document to create a new FilledRegion element -// using var filledRegionCollector = new FilteredElementCollector(_converterSettings.Current.Document); -// Element filledRegionElementType = filledRegionCollector.OfClass(typeof(DB.FilledRegionType)).FirstElement(); -// -// // follow the pattern of the native CAD import: try to draw native FilledRegion in the Active view, -// // or draw a linked CAD document, if imported into unsupported View (in our case: don't catch the error, so the converter will default to fallback) -// View activeView = _converterSettings.Current.Document.ActiveView; -// -// // Autodesk.Revit.Exceptions.ArgumentException will be thrown if ActiveView invalid -// using FilledRegion filledRegion = FilledRegion.Create( -// _converterSettings.Current.Document, -// filledRegionElementType.Id, -// activeView.Id, -// profileLoops -// ); -// -// return filledRegion.UniqueId; -// } -// } +namespace Speckle.Converters.RevitShared.ToHost.TopLevel; + +public class RegionConverterToHost : ITypedConverter +{ + private readonly IConverterSettingsStore _converterSettings; + private readonly ITypedConverter _curveConverter; + + public RegionConverterToHost( + IConverterSettingsStore converterSettings, + ITypedConverter curveConverter + ) + { + _converterSettings = converterSettings; + _curveConverter = curveConverter; + } + + public string Convert(SOG.Region target) + { + List resultList = new(); + List profileLoops = new(); + + // convert boundary loop and add to profileLoops list + CurveLoop boundaryLoop = new(); + List outerLoop = _curveConverter.Convert(target.boundary).Cast().ToList(); + outerLoop.ForEach(x => boundaryLoop.Append(x)); + profileLoops.Add(boundaryLoop); + + // convert inner loops and add to profileLoops list + List> innerLoops = target + .innerLoops.Select(x => _curveConverter.Convert(x).Cast().ToList()) + .ToList(); + foreach (var innerLoop in innerLoops) + { + CurveLoop voidLoop = new(); + innerLoop.ForEach(x => voidLoop.Append(x)); + profileLoops.Add(voidLoop); + } + + // get FilledRegionType from the document to create a new FilledRegion element + using var filledRegionCollector = new FilteredElementCollector(_converterSettings.Current.Document); + Element filledRegionElementType = filledRegionCollector.OfClass(typeof(DB.FilledRegionType)).FirstElement(); + + // follow the pattern of the native CAD import: try to draw native FilledRegion in the Active view, + // or draw a linked CAD document, if imported into unsupported View (in our case: don't catch the error, so the converter will default to fallback) + View activeView = _converterSettings.Current.Document.ActiveView; + + // Autodesk.Revit.Exceptions.ArgumentException will be thrown if ActiveView invalid + using FilledRegion filledRegion = FilledRegion.Create( + _converterSettings.Current.Document, + filledRegionElementType.Id, + activeView.Id, + profileLoops + ); + + return filledRegion.UniqueId; + } +} diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/PlanViewToHostGeometryObjectConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/PlanViewToHostGeometryObjectConverter.cs index 9185ddd48..79e15dfdc 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/PlanViewToHostGeometryObjectConverter.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/PlanViewToHostGeometryObjectConverter.cs @@ -1,49 +1,47 @@ -// TODO: We should scope 2d elements properly in revit. It is outside of reference geometry workflows right now. +using System.Collections; +using Speckle.Converters.Common.Objects; +using Speckle.Objects.Data; +using Speckle.Sdk.Common.Exceptions; +using Speckle.Sdk.Models; +using Speckle.Sdk.Models.Extensions; -// using System.Collections; -// using Speckle.Converters.Common.Objects; -// using Speckle.Objects.Data; -// using Speckle.Sdk.Common.Exceptions; -// using Speckle.Sdk.Models; -// using Speckle.Sdk.Models.Extensions; -// -// namespace Speckle.Converters.RevitShared.ToSpeckle; -// -// public class PlanViewToHostGeometryObjectConverter : ITypedConverter> -// { -// private readonly ITypedConverter _regionToFilledRegionConverter; -// -// public PlanViewToHostGeometryObjectConverter(ITypedConverter regionToFilledRegionConverter) -// { -// _regionToFilledRegionConverter = regionToFilledRegionConverter; -// } -// -// public List Convert(Base target) -// { -// switch (target) -// { -// case SOG.Region region: -// return new List() { _regionToFilledRegionConverter.Convert(region) }; -// -// case DataObject dataObj: -// List results = new(); -// -// var displayValue = target.TryGetDisplayValue(); -// if ((displayValue is IList && !displayValue.Any()) || displayValue is null) -// { -// throw new ValidationException($"No display value found for {target.speckle_type}"); -// } -// dataObj.displayValue.ForEach(x => results.AddRange(Convert(x))); -// -// if (results.Count == 0) -// { -// throw new ConversionException($"No objects could be converted for {target.speckle_type}."); -// } -// -// return results; -// -// default: -// throw new ConversionException($"Objects of type {target.speckle_type} cannot be converted in 2d view."); -// } -// } -// } +namespace Speckle.Converters.RevitShared.ToSpeckle; + +public class PlanViewToHostGeometryObjectConverter : ITypedConverter> +{ + private readonly ITypedConverter _regionToFilledRegionConverter; + + public PlanViewToHostGeometryObjectConverter(ITypedConverter regionToFilledRegionConverter) + { + _regionToFilledRegionConverter = regionToFilledRegionConverter; + } + + public List Convert(Base target) + { + switch (target) + { + case SOG.Region region: + return new List() { _regionToFilledRegionConverter.Convert(region) }; + + case DataObject dataObj: + List results = new(); + + var displayValue = target.TryGetDisplayValue(); + if ((displayValue is IList && !displayValue.Any()) || displayValue is null) + { + throw new ValidationException($"No display value found for {target.speckle_type}"); + } + dataObj.displayValue.ForEach(x => results.AddRange(Convert(x))); + + if (results.Count == 0) + { + throw new ConversionException($"No objects could be converted for {target.speckle_type}."); + } + + return results; + + default: + throw new ConversionException($"Objects of type {target.speckle_type} cannot be converted in 2d view."); + } + } +} diff --git a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/ArcToSpeckleConverterTests.cs b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/ArcToSpeckleConverterTests.cs new file mode 100644 index 000000000..5f73f5606 --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/ArcToSpeckleConverterTests.cs @@ -0,0 +1,59 @@ +using FluentAssertions; +using Moq; +using NUnit.Framework; +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; +using Speckle.Converters.Rhino; +using Speckle.Converters.Rhino.ToSpeckle.Raw; +using Speckle.Testing; + +namespace Speckle.Converters.Rhino7.Tests; + +public class ArcToSpeckleConverterTests : MoqTest +{ + [Test] + public void Convert_ShouldConvertArcCorrectly() + { + // Arrange + var mockPointConverter = Create>(); + var mockPlaneConverter = Create>(); + var mockBoxConverter = Create>(); + var mockContextStack = Create>(); + var factory = Create(); + + var doc = Create(); + + mockContextStack.Setup(cs => cs.Current).Returns(new RhinoConversionSettings(doc.Object, "units")); + + var targetArc = Create(); + var targetPlane = Create(); + var targetBox = Create(); + var point3d = Create(); + var boundbox = Create(); + + targetArc.Setup(x => x.Plane).Returns(targetPlane.Object); + targetArc.Setup(x => x.StartPoint).Returns(point3d.Object); + targetArc.Setup(x => x.MidPoint).Returns(point3d.Object); + targetArc.Setup(x => x.EndPoint).Returns(point3d.Object); + targetArc.Setup(x => x.BoundingBox()).Returns(boundbox.Object); + factory.Setup(x => x.Create(boundbox.Object)).Returns(targetBox.Object); + + mockPlaneConverter.Setup(pc => pc.Convert(targetPlane.Object)).Returns((SOG.Plane)null!); + mockPointConverter.Setup(pc => pc.Convert(It.IsAny())).Returns((SOG.Point)null!); + mockBoxConverter.Setup(bc => bc.Convert(targetBox.Object)).Returns((SOG.Box)null!); + + var converter = new ArcToSpeckleConverter( + mockPointConverter.Object, + mockPlaneConverter.Object, + mockBoxConverter.Object, + mockContextStack.Object, + factory.Object + ); + + // Act + var result = converter.Convert(targetArc.Object); + + // Assert + result.Should().NotBeNull(); + } +} diff --git a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/EllipseToSpeckleConverterTests.cs b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/EllipseToSpeckleConverterTests.cs new file mode 100644 index 000000000..771a38a9c --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/EllipseToSpeckleConverterTests.cs @@ -0,0 +1,21 @@ +using NUnit.Framework; +using Speckle.Converters.Common; +using Speckle.Converters.Common.Objects; +using Speckle.Converters.Rhino; +using Speckle.Converters.Rhino.ToSpeckle.Raw; +using Speckle.Testing; + +namespace Speckle.Converters.Rhino7.Tests; + +public class EllipseToSpeckleConverterTests : MoqTest +{ + [Test] + public void Convert_Test() + { + var mockContextStack = Create>(); + var planeConverter = Create>(); + var boxConverter = Create>(); + + _ = new EllipseToSpeckleConverter(planeConverter.Object, boxConverter.Object, mockContextStack.Object); + } +} diff --git a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/Speckle.Converters.Rhino7.Tests.csproj b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/Speckle.Converters.Rhino7.Tests.csproj new file mode 100644 index 000000000..a7c0bf00e --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/Speckle.Converters.Rhino7.Tests.csproj @@ -0,0 +1,28 @@ + + + + net8.0 + false + true + Debug;Release;Local + + + + + + + + + + + + + + + + + + + + + diff --git a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json new file mode 100644 index 000000000..65b778b82 --- /dev/null +++ b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json @@ -0,0 +1,411 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "altcover": { + "type": "Direct", + "requested": "[8.9.3, )", + "resolved": "8.9.3", + "contentHash": "auKC+pDCkLjfhFkSRaAUBu25BOmlLSqucR7YBs/Lkbdc0XRuJoklWafs1KKp+M+VoJ1f0TeMS6B/FO5IeIcu7w==" + }, + "FluentAssertions": { + "type": "Direct", + "requested": "[6.12.1, )", + "resolved": "6.12.1", + "contentHash": "hciWwryyLw3eonfqhFpOMTXyM1/auJChYslEBA+iGJyuBs5O3t/kA8YaeH4iRo/2Fe3ElSYL86C0miivtZ0f3g==", + "dependencies": { + "System.Configuration.ConfigurationManager": "4.4.0" + } + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.11.1, )", + "resolved": "17.11.1", + "contentHash": "U3Ty4BaGoEu+T2bwSko9tWqWUOU16WzSFkq6U8zve75oRBMSLTBdMAZrVNNz1Tq12aCdDom9fcOcM9QZaFHqFg==", + "dependencies": { + "Microsoft.CodeCoverage": "17.11.1", + "Microsoft.TestPlatform.TestHost": "17.11.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.0.3, )", + "resolved": "1.0.3", + "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net461": "1.0.3" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.70, )", + "resolved": "4.20.70", + "contentHash": "4rNnAwdpXJBuxqrOCzCyICXHSImOTRktCgCWXWykuF1qwoIsVvEnR7PjbMk/eLOxWvhmj5Kwt+kDV3RGUYcNwg==", + "dependencies": { + "Castle.Core": "5.1.1" + } + }, + "NUnit": { + "type": "Direct", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "MT/DpAhjtiytzhTgTqIhBuWx4y26PKfDepYUHUM+5uv4TsryHC2jwFo5e6NhWkApCm/G6kZ80dRjdJFuAxq3rg==" + }, + "NUnit.Analyzers": { + "type": "Direct", + "requested": "[4.2.0, )", + "resolved": "4.2.0", + "contentHash": "4fJojPkzdoa4nB2+p6U+fITvPnVvwWSnsmiJ/Dl30xqiL3oxNbYvfeSLVd91hOmEjoUqSwN3Z7j1aFedjqWbUA==" + }, + "NUnit3TestAdapter": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "R7e1+a4vuV/YS+ItfL7f//rG+JBvVeVLX4mHzFEZo4W1qEKl8Zz27AqvQSAqo+BtIzUCo4aAJMYa56VXS4hudw==" + }, + "PolySharp": { + "type": "Direct", + "requested": "[1.14.1, )", + "resolved": "1.14.1", + "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" + }, + "Speckle.InterfaceGenerator": { + "type": "Direct", + "requested": "[0.9.6, )", + "resolved": "0.9.6", + "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" + }, + "Speckle.Rhino7.Fakes": { + "type": "Direct", + "requested": "[0.3.1, )", + "resolved": "0.3.1", + "contentHash": "II0zR/4QfPC/j44zfVTSqplZsd/GXHEa4eKRZFdjHuXnXBcd80uObWAb0C2Wm88KSlKOnSYAeQLEMmPjK5Kw3w==", + "dependencies": { + "System.Drawing.Common": "8.0.6" + } + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + } + }, + "GraphQL.Client": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0", + "GraphQL.Client.Abstractions.Websocket": "6.0.0", + "System.Reactive": "5.0.0" + } + }, + "GraphQL.Client.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", + "dependencies": { + "GraphQL.Primitives": "6.0.0" + } + }, + "GraphQL.Client.Abstractions.Websocket": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0" + } + }, + "GraphQL.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "nPJqrcA5iX+Y0kqoT3a+pD/8lrW/V7ayqnEJQsTonSoPz59J8bmoQhcSN4G8+UJ64Hkuf0zuxnfuj2lkHOq4cA==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Data.Sqlite": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "KGxbPeWsQMnmQy43DSBxAFtHz3l2JX8EWBSGUCvT3CuZ8KsuzbkqMIJMDOxWtG8eZSoCDI04aiVQjWuuV8HmSw==", + "dependencies": { + "Microsoft.Data.Sqlite.Core": "7.0.5", + "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" + } + }, + "Microsoft.Data.Sqlite.Core": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "FTerRmQPqHrCrnoUzhBu+E+1DNGwyrAMLqHkAqOOOu5pGfyMOj8qQUBxI/gDtWtG11p49UxSfWmBzRNlwZqfUg==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "nOP8R1mVb/6mZtm2qgAJXn/LFm/2kMjHDAg/QJLFG6CuWYJtaD3p1BwQhufBVvRzL9ceJ/xF0SQ0qsI2GkDQAA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "65MrmXCziWaQFrI0UHkQbesrX5wTwf9XPjY5yFm/VkgJKFJ5gqvXRoXjIZcf2wLi5ZlwGz/oMYfyURVCWbM5iw==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "vJ9xvOZCnUAIHcGC3SU35r3HKmHTVIeHzo6u/qzlHAqD8m6xv92MLin4oJntTvkpKxVX3vI1GFFkIQtU3AdlsQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.2.0" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "UpZLNLBpIZ0GTebShui7xXYh6DmBHjWM8NxGxZbdQh/bPZ5e6YswqI+bru6BnEL5eWiOdodsXtEz3FROcgi/qg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Primitives": "2.2.0", + "System.ComponentModel.Annotations": "4.5.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies.net461": { + "type": "Transitive", + "resolved": "1.0.3", + "contentHash": "AmOJZwCqnOCNp6PPcf9joyogScWLtwy0M1WkqfEQ0M9nYwyDD7EX9ZjscKS5iYnyvteX7kzSKFCKt9I9dXA6mA==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "E2jZqAU6JeWEVsyOEOrSW1o1bpHLgb25ypvKNB/moBXPVsFYBPd/Jwi7OrYahG50J83LfHzezYI+GaEkpAotiA==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "DnG+GOqJXO/CkoqlJWeDFTgPhqD/V6VqUIL3vINizCWZ3X+HshCtbbyDdSHQQEjrc2Sl/K3yaxX6s+5LFEdYuw==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.11.1", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.Win32.SystemEvents": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "9opKRyOKMCi2xJ7Bj7kxtZ1r9vbzosMvRrdEhVhDz8j8MoBGgB+WmC94yH839NPH+BclAjtQ/pyagvi/8gDLkw==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "Speckle.Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.2", + "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" + }, + "SQLitePCLRaw.bundle_e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", + "dependencies": { + "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", + "SQLitePCLRaw.provider.e_sqlite3": "2.1.4" + } + }, + "SQLitePCLRaw.core": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "SQLitePCLRaw.lib.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" + }, + "SQLitePCLRaw.provider.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "System.ComponentModel.Annotations": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==" + }, + "System.Configuration.ConfigurationManager": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==", + "dependencies": { + "System.Security.Cryptography.ProtectedData": "4.4.0" + } + }, + "System.Diagnostics.EventLog": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + }, + "System.Drawing.Common": { + "type": "Transitive", + "resolved": "8.0.6", + "contentHash": "aSwRnJzz6fZ73JvWMMG0KvBwOnXsBTFtfHLriQyAPrDIZ+NrDfl15GWbO/A35k0dtH77D7jfxzEcFF7RONtU/w==", + "dependencies": { + "Microsoft.Win32.SystemEvents": "8.0.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.3", + "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" + }, + "System.Reactive": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" + }, + "speckle.converters.common": { + "type": "Project", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", + "Speckle.Objects": "[3.2.0, )" + } + }, + "speckle.testing": { + "type": "Project", + "dependencies": { + "Moq": "[4.20.70, )", + "NUnit": "[4.1.0, )" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "2.2.0", + "contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" + }, + "Microsoft.Extensions.Logging": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "Nxqhadc9FCmFHzU+fz3oc8sFlE6IadViYg8dfUdGzJZ2JUxnCsRghBhhOWdM4B2zSZqEc+0BjliBh/oNdRZuig==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging.Abstractions": "2.2.0", + "Microsoft.Extensions.Options": "2.2.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" + }, + "Speckle.DoubleNumerics": { + "type": "CentralTransitive", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "20DtS+FsDRsOD9+AU3TwNFZ0qrKo5f6f7B5ZR9wStsIHHHC9k7DpjbCvuNtmnSjx54MD+TJC7wV2f5iyGVPj1A==" + }, + "Speckle.Objects": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "ZgsbDz31Rq87Gtej2soLjTTBaRnnERKvs0QCT2AjGD4Vn5QwqnagPDqFTndWz+w6vG4t2hZH56QfqAmyIiuPag==", + "dependencies": { + "Speckle.Sdk": "3.2.0" + } + }, + "Speckle.Sdk": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "DI3ljov8FMIAIosm3quAXlgYKWS+AJriaFC9dGBJh4y1xg4jvD8Tpx4h7Wd3Bib9BsH6Bhe5BUwACLv7dJKxIg==", + "dependencies": { + "GraphQL.Client": "6.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.Data.Sqlite": "7.0.5", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging": "2.2.0", + "Speckle.DoubleNumerics": "4.1.0", + "Speckle.Newtonsoft.Json": "13.0.2", + "Speckle.Sdk.Dependencies": "3.2.0" + } + }, + "Speckle.Sdk.Dependencies": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "wgUjHJN8lPF47tAht+2gm8yF2dIQXxTXhoJttzb+89o2ej1jrdwxTUQP1EtfjnixK6QApJ809QQqTbJm5sdaqA==" + } + } + } +} \ No newline at end of file diff --git a/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json b/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json index cc439f344..55982b84a 100644 --- a/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json @@ -334,10 +334,8 @@ "speckle.testing": { "type": "Project", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Moq": "[4.20.70, )", - "NUnit": "[4.1.0, )", - "Speckle.Sdk": "[3.2.0, )" + "NUnit": "[4.1.0, )" } }, "Microsoft.Extensions.DependencyInjection": { diff --git a/DUI3/Speckle.Connectors.DUI/Models/DocumentModelStore.cs b/DUI3/Speckle.Connectors.DUI/Models/DocumentModelStore.cs index a4e0c7c09..dc82c2b61 100644 --- a/DUI3/Speckle.Connectors.DUI/Models/DocumentModelStore.cs +++ b/DUI3/Speckle.Connectors.DUI/Models/DocumentModelStore.cs @@ -133,7 +133,7 @@ public abstract class DocumentModelStore(IJsonSerializer serializer) // POC: this seemms more like a IModelsDeserializer?, seems disconnected from this class protected List Deserialize(string models) => serializer.Deserialize>(models).NotNull(); - public void SaveState() + protected void SaveState() { lock (_models) { diff --git a/Directory.Packages.props b/Directory.Packages.props index 4c53233c8..f4b2097ec 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -47,6 +47,10 @@ + + + + @@ -54,6 +58,6 @@ - + \ No newline at end of file diff --git a/Importers/Ifc/Speckle.Importers.Ifc.Tester/packages.lock.json b/Importers/Ifc/Speckle.Importers.Ifc.Tester/packages.lock.json index 44eaa2598..8093b4b78 100644 --- a/Importers/Ifc/Speckle.Importers.Ifc.Tester/packages.lock.json +++ b/Importers/Ifc/Speckle.Importers.Ifc.Tester/packages.lock.json @@ -115,11 +115,6 @@ "Microsoft.Extensions.Configuration": "2.2.0" } }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "cjWrLkJXK0rs4zofsK4bSdg+jhDLTaxrkXu4gS6Y7MAlCvRyNNgwY/lJi5RDlQOnSZweHqoyvgvbdvQsRIW+hg==" - }, "Microsoft.Extensions.Options": { "type": "Transitive", "resolved": "2.2.0", @@ -223,7 +218,7 @@ "Ara3D.Buffers": "[1.4.5, )", "Ara3D.Logging": "[1.4.5, )", "Ara3D.Utils": "[1.4.5, )", - "Microsoft.Extensions.DependencyInjection": "[8.0.0, )", + "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", "Speckle.Objects": "[3.2.0, )", "Speckle.Sdk": "[3.2.0, )" @@ -256,12 +251,18 @@ "Microsoft.Extensions.DependencyInjection": { "type": "CentralTransitive", "requested": "[2.2.0, )", - "resolved": "8.0.0", - "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==", + "resolved": "2.2.0", + "contentHash": "MZtBIwfDFork5vfjpJdG5g8wuJFt7d/y3LOSVVtDK/76wlbtz6cjltfKHqLx2TKVqTj5/c41t77m1+h20zqtPA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0" } }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "2.2.0", + "contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" + }, "Microsoft.Extensions.Logging": { "type": "CentralTransitive", "requested": "[2.2.0, )", diff --git a/Importers/Ifc/Speckle.Importers.Ifc.Tester2/packages.lock.json b/Importers/Ifc/Speckle.Importers.Ifc.Tester2/packages.lock.json index 44eaa2598..8093b4b78 100644 --- a/Importers/Ifc/Speckle.Importers.Ifc.Tester2/packages.lock.json +++ b/Importers/Ifc/Speckle.Importers.Ifc.Tester2/packages.lock.json @@ -115,11 +115,6 @@ "Microsoft.Extensions.Configuration": "2.2.0" } }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "cjWrLkJXK0rs4zofsK4bSdg+jhDLTaxrkXu4gS6Y7MAlCvRyNNgwY/lJi5RDlQOnSZweHqoyvgvbdvQsRIW+hg==" - }, "Microsoft.Extensions.Options": { "type": "Transitive", "resolved": "2.2.0", @@ -223,7 +218,7 @@ "Ara3D.Buffers": "[1.4.5, )", "Ara3D.Logging": "[1.4.5, )", "Ara3D.Utils": "[1.4.5, )", - "Microsoft.Extensions.DependencyInjection": "[8.0.0, )", + "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", "Speckle.Objects": "[3.2.0, )", "Speckle.Sdk": "[3.2.0, )" @@ -256,12 +251,18 @@ "Microsoft.Extensions.DependencyInjection": { "type": "CentralTransitive", "requested": "[2.2.0, )", - "resolved": "8.0.0", - "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==", + "resolved": "2.2.0", + "contentHash": "MZtBIwfDFork5vfjpJdG5g8wuJFt7d/y3LOSVVtDK/76wlbtz6cjltfKHqLx2TKVqTj5/c41t77m1+h20zqtPA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0" } }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "2.2.0", + "contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" + }, "Microsoft.Extensions.Logging": { "type": "CentralTransitive", "requested": "[2.2.0, )", diff --git a/Importers/Ifc/Speckle.Importers.Ifc/Speckle.Importers.Ifc.csproj b/Importers/Ifc/Speckle.Importers.Ifc/Speckle.Importers.Ifc.csproj index b806ffe0c..2f6906f84 100644 --- a/Importers/Ifc/Speckle.Importers.Ifc/Speckle.Importers.Ifc.csproj +++ b/Importers/Ifc/Speckle.Importers.Ifc/Speckle.Importers.Ifc.csproj @@ -24,7 +24,7 @@ - + diff --git a/Importers/Ifc/Speckle.Importers.Ifc/packages.lock.json b/Importers/Ifc/Speckle.Importers.Ifc/packages.lock.json index 01524df50..1b2e4309f 100644 --- a/Importers/Ifc/Speckle.Importers.Ifc/packages.lock.json +++ b/Importers/Ifc/Speckle.Importers.Ifc/packages.lock.json @@ -28,11 +28,11 @@ }, "Microsoft.Extensions.DependencyInjection": { "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "MZtBIwfDFork5vfjpJdG5g8wuJFt7d/y3LOSVVtDK/76wlbtz6cjltfKHqLx2TKVqTj5/c41t77m1+h20zqtPA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0" } }, "Microsoft.NETFramework.ReferenceAssemblies": { @@ -173,11 +173,6 @@ "Microsoft.Extensions.Configuration": "2.2.0" } }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "cjWrLkJXK0rs4zofsK4bSdg+jhDLTaxrkXu4gS6Y7MAlCvRyNNgwY/lJi5RDlQOnSZweHqoyvgvbdvQsRIW+hg==" - }, "Microsoft.Extensions.Options": { "type": "Transitive", "resolved": "2.2.0", @@ -275,6 +270,12 @@ "speckle.connectors.logging": { "type": "Project" }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "2.2.0", + "contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" + }, "Microsoft.Extensions.Logging": { "type": "CentralTransitive", "requested": "[2.2.0, )", diff --git a/Local.sln b/Local.sln index ec6064d3c..9776bc0f9 100644 --- a/Local.sln +++ b/Local.sln @@ -75,6 +75,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Civil3d2 EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Speckle.Converters.RhinoShared", "Converters\Rhino\Speckle.Converters.RhinoShared\Speckle.Converters.RhinoShared.shproj", "{E1C43415-3200-45F4-8BF9-A4DD7D7F2ED9}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Rhino7.Tests", "Converters\Rhino\Speckle.Converters.Rhino7.Tests\Speckle.Converters.Rhino7.Tests.csproj", "{AC2DB416-F05C-4296-9040-56D6AD4FCD27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Revit2023.Tests", "Converters\Revit\Speckle.Converters.Revit2023.Tests\Speckle.Converters.Revit2023.Tests.csproj", "{68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Testing", "Sdk\Speckle.Testing\Speckle.Testing.csproj", "{A3869243-B462-4986-914B-94E407D8D20F}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Revit2024", "Connectors\Revit\Speckle.Connectors.Revit2024\Speckle.Connectors.Revit2024.csproj", "{617BD3C7-87D9-4D28-8AC9-4910945BB9FC}" @@ -89,6 +93,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{FC2246 EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Speckle.Converters.RevitShared.Tests", "Converters\Revit\Speckle.Converters.RevitShared.Tests\Speckle.Converters.RevitShared.Tests.shproj", "{E1C43415-3202-45F4-8BF9-A4DD7D7F2ED6}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Revit2024.Tests", "Converters\Revit\Speckle.Converters.Revit2024.Tests\Speckle.Converters.Revit2024.Tests.csproj", "{C32274D9-1B66-4D5C-82F9-EB3F10F46752}" +EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Speckle.Connectors.RevitShared.Cef", "Connectors\Revit\Speckle.Connectors.RevitShared.Cef\Speckle.Connectors.RevitShared.Cef.shproj", "{6A40CBE4-ECAB-4CED-9917-5C64CBF75DA6}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2025", "2025", "{8AC2AD6D-6C74-4B24-8DF6-42717FC9B804}" @@ -137,10 +143,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Autocad2 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Autocad2022", "Converters\Autocad\Speckle.Converters.Autocad2022\Speckle.Converters.Autocad2022.csproj", "{62F50A22-8BBF-497A-B599-F858DFF1D31C}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Tests", "Sdk\Speckle.Connectors.Tests\Speckle.Connectors.Tests.csproj", "{1A2B994C-A36D-4827-8237-0817F56B37E1}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Autocad2024", "Connectors\Autocad\Speckle.Connectors.Autocad2024\Speckle.Connectors.Autocad2024.csproj", "{27AFBC57-F493-4B51-BEE0-0C364B6A6A13}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.DUI.Tests", "DUI3\Speckle.Connectors.DUI.Tests\Speckle.Connectors.DUI.Tests.csproj", "{5F91F0E5-E7FD-48C1-87C5-0913C55FF094}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Revit2022.Tests", "Converters\Revit\Speckle.Converters.Revit2022.Tests\Speckle.Converters.Revit2022.Tests.csproj", "{C34D0246-6C16-4E81-AE57-2CE70F81484B}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Logging", "Sdk\Speckle.Connectors.Logging\Speckle.Connectors.Logging.csproj", "{38497468-6B28-4F8F-A9E0-3167E90DDD89}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Common", "Sdk\Speckle.Connectors.Common\Speckle.Connectors.Common.csproj", "{3747C01B-343E-4425-A973-4D9D181BE468}" @@ -385,6 +395,18 @@ Global {25172C49-7AA4-4739-BB07-69785094C379}.Local|Any CPU.Build.0 = Local|Any CPU {25172C49-7AA4-4739-BB07-69785094C379}.Release|Any CPU.ActiveCfg = Release|Any CPU {25172C49-7AA4-4739-BB07-69785094C379}.Release|Any CPU.Build.0 = Release|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Local|Any CPU.ActiveCfg = Local|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Local|Any CPU.Build.0 = Local|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Release|Any CPU.Build.0 = Release|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Local|Any CPU.ActiveCfg = Local|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Local|Any CPU.Build.0 = Local|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Release|Any CPU.Build.0 = Release|Any CPU {A3869243-B462-4986-914B-94E407D8D20F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A3869243-B462-4986-914B-94E407D8D20F}.Debug|Any CPU.Build.0 = Debug|Any CPU {A3869243-B462-4986-914B-94E407D8D20F}.Local|Any CPU.ActiveCfg = Local|Any CPU @@ -403,6 +425,12 @@ Global {67B888D9-C6C4-49F1-883C-5B964151D889}.Local|Any CPU.Build.0 = Local|Any CPU {67B888D9-C6C4-49F1-883C-5B964151D889}.Release|Any CPU.ActiveCfg = Release|Any CPU {67B888D9-C6C4-49F1-883C-5B964151D889}.Release|Any CPU.Build.0 = Release|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Local|Any CPU.ActiveCfg = Local|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Local|Any CPU.Build.0 = Local|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Release|Any CPU.Build.0 = Release|Any CPU {A6DE3DA0-B242-4F49-AEF0-4E26AF92D16C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A6DE3DA0-B242-4F49-AEF0-4E26AF92D16C}.Debug|Any CPU.Build.0 = Debug|Any CPU {A6DE3DA0-B242-4F49-AEF0-4E26AF92D16C}.Local|Any CPU.ActiveCfg = Local|Any CPU @@ -475,6 +503,12 @@ Global {62F50A22-8BBF-497A-B599-F858DFF1D31C}.Local|Any CPU.Build.0 = Local|Any CPU {62F50A22-8BBF-497A-B599-F858DFF1D31C}.Release|Any CPU.ActiveCfg = Release|Any CPU {62F50A22-8BBF-497A-B599-F858DFF1D31C}.Release|Any CPU.Build.0 = Release|Any CPU + {1A2B994C-A36D-4827-8237-0817F56B37E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A2B994C-A36D-4827-8237-0817F56B37E1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A2B994C-A36D-4827-8237-0817F56B37E1}.Local|Any CPU.ActiveCfg = Local|Any CPU + {1A2B994C-A36D-4827-8237-0817F56B37E1}.Local|Any CPU.Build.0 = Local|Any CPU + {1A2B994C-A36D-4827-8237-0817F56B37E1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A2B994C-A36D-4827-8237-0817F56B37E1}.Release|Any CPU.Build.0 = Release|Any CPU {27AFBC57-F493-4B51-BEE0-0C364B6A6A13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {27AFBC57-F493-4B51-BEE0-0C364B6A6A13}.Debug|Any CPU.Build.0 = Debug|Any CPU {27AFBC57-F493-4B51-BEE0-0C364B6A6A13}.Local|Any CPU.ActiveCfg = Local|Any CPU @@ -487,6 +521,12 @@ Global {5F91F0E5-E7FD-48C1-87C5-0913C55FF094}.Local|Any CPU.Build.0 = Local|Any CPU {5F91F0E5-E7FD-48C1-87C5-0913C55FF094}.Release|Any CPU.ActiveCfg = Release|Any CPU {5F91F0E5-E7FD-48C1-87C5-0913C55FF094}.Release|Any CPU.Build.0 = Release|Any CPU + {C34D0246-6C16-4E81-AE57-2CE70F81484B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C34D0246-6C16-4E81-AE57-2CE70F81484B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C34D0246-6C16-4E81-AE57-2CE70F81484B}.Local|Any CPU.ActiveCfg = Local|Any CPU + {C34D0246-6C16-4E81-AE57-2CE70F81484B}.Local|Any CPU.Build.0 = Local|Any CPU + {C34D0246-6C16-4E81-AE57-2CE70F81484B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C34D0246-6C16-4E81-AE57-2CE70F81484B}.Release|Any CPU.Build.0 = Release|Any CPU {38497468-6B28-4F8F-A9E0-3167E90DDD89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {38497468-6B28-4F8F-A9E0-3167E90DDD89}.Debug|Any CPU.Build.0 = Debug|Any CPU {38497468-6B28-4F8F-A9E0-3167E90DDD89}.Local|Any CPU.ActiveCfg = Local|Any CPU @@ -781,6 +821,8 @@ Global {C2DE264A-AA87-4012-B954-17E3F403A237} = {844572F4-7281-49B4-BD92-722607606C98} {25172C49-7AA4-4739-BB07-69785094C379} = {844572F4-7281-49B4-BD92-722607606C98} {E1C43415-3200-45F4-8BF9-A4DD7D7F2ED9} = {A5D616EA-1D91-48BE-BAB8-3501A29F1C20} + {AC2DB416-F05C-4296-9040-56D6AD4FCD27} = {201AF4EA-F049-4332-A746-42D3413DAE08} + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051} = {E9DEBA00-50A4-485D-BA65-D8AB3E3467AB} {A3869243-B462-4986-914B-94E407D8D20F} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {617BD3C7-87D9-4D28-8AC9-4910945BB9FC} = {57F59C0C-5687-4AF9-AE1C-1933B539F0E4} {67B888D9-C6C4-49F1-883C-5B964151D889} = {57F59C0C-5687-4AF9-AE1C-1933B539F0E4} @@ -788,6 +830,7 @@ Global {57F59C0C-5687-4AF9-AE1C-1933B539F0E4} = {D92751C8-1039-4005-90B2-913E55E0B8BD} {FC224610-32D3-454E-9BC1-1219FE8ACD5F} = {D92751C8-1039-4005-90B2-913E55E0B8BD} {E1C43415-3202-45F4-8BF9-A4DD7D7F2ED6} = {FC224610-32D3-454E-9BC1-1219FE8ACD5F} + {C32274D9-1B66-4D5C-82F9-EB3F10F46752} = {57F59C0C-5687-4AF9-AE1C-1933B539F0E4} {6A40CBE4-ECAB-4CED-9917-5C64CBF75DA6} = {FC224610-32D3-454E-9BC1-1219FE8ACD5F} {8AC2AD6D-6C74-4B24-8DF6-42717FC9B804} = {D92751C8-1039-4005-90B2-913E55E0B8BD} {A6DE3DA0-B242-4F49-AEF0-4E26AF92D16C} = {8AC2AD6D-6C74-4B24-8DF6-42717FC9B804} @@ -810,8 +853,10 @@ Global {B9CE43B9-31C9-4F02-A92C-658681AD75C6} = {804E065F-914C-414A-AF84-009312C3CFF6} {EAAD080D-49AF-49BF-B8BD-A18CEB210734} = {B9CE43B9-31C9-4F02-A92C-658681AD75C6} {62F50A22-8BBF-497A-B599-F858DFF1D31C} = {B9CE43B9-31C9-4F02-A92C-658681AD75C6} + {1A2B994C-A36D-4827-8237-0817F56B37E1} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {27AFBC57-F493-4B51-BEE0-0C364B6A6A13} = {844572F4-7281-49B4-BD92-722607606C98} {5F91F0E5-E7FD-48C1-87C5-0913C55FF094} = {FD4D6594-D81E-456F-8F2E-35B09E04A755} + {C34D0246-6C16-4E81-AE57-2CE70F81484B} = {0AF38BA3-65A0-481B-8CBB-B82E406E1575} {38497468-6B28-4F8F-A9E0-3167E90DDD89} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {3747C01B-343E-4425-A973-4D9D181BE468} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {13225611-10EE-41BB-9198-C88D6E978DA6} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} diff --git a/Sdk/Speckle.Connectors.Common.Tests/Logging/ActivityScopeTests.cs b/Sdk/Speckle.Connectors.Common.Tests/Logging/ActivityScopeTests.cs deleted file mode 100644 index 36c31e83a..000000000 --- a/Sdk/Speckle.Connectors.Common.Tests/Logging/ActivityScopeTests.cs +++ /dev/null @@ -1,16 +0,0 @@ -using FluentAssertions; -using NUnit.Framework; - -namespace Speckle.Connectors.Common.Tests.Logging; - -public class ActivityScopeTests -{ - [Test] - public async Task TestAsyncLocal() - { - Connectors.Logging.ActivityScope.SetTag("test", "me"); - await Task.Delay(10); - Connectors.Logging.ActivityScope.Tags.ContainsKey("test").Should().BeTrue(); - Connectors.Logging.ActivityScope.Tags["test"].Should().Be("me"); - } -} diff --git a/Sdk/Speckle.Connectors.Common.Tests/Operations/ReceiveOperationTests.cs b/Sdk/Speckle.Connectors.Common.Tests/Operations/ReceiveOperationTests.cs deleted file mode 100644 index 4a2683be4..000000000 --- a/Sdk/Speckle.Connectors.Common.Tests/Operations/ReceiveOperationTests.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System.Reflection; -using FluentAssertions; -using Microsoft.Extensions.DependencyInjection; -using Moq; -using NUnit.Framework; -using Speckle.Connectors.Common.Builders; -using Speckle.Connectors.Common.Operations; -using Speckle.Connectors.Common.Threading; -using Speckle.Sdk.Api; -using Speckle.Sdk.Api.GraphQL.Models; -using Speckle.Sdk.Credentials; -using Speckle.Sdk.Logging; -using Speckle.Sdk.Models; -using Speckle.Testing; - -namespace Speckle.Connectors.Common.Tests.Operations; - -public class ReceiveOperationTests : MoqTest -{ -#pragma warning disable CA1034 - [SpeckleType("TestBase")] - public class TestBase : Base; -#pragma warning restore CA1034 - [Test] - public async Task Execute() - { - var hostObjectBuilder = Create(); - var accountService = Create(); - var receiveProgress = Create(); - var operations = Create(); - var receiveVersionRetriever = Create(); - var activityFactory = Create(MockBehavior.Loose); - var threadContext = Create(); - - var @base = new TestBase(); - var account = new Account(); - var accountId = "accountId"; - var serverUrl = new Uri("https://localhost"); - var version = new Speckle.Sdk.Api.GraphQL.Models.Version(); - var projectName = "projectName"; - var modelName = "modelName"; - - var ct = new CancellationToken(); - var receiveInfo = new ReceiveInfo( - accountId, - serverUrl, - string.Empty, - projectName, - string.Empty, - modelName, - string.Empty, - string.Empty - ); - var progress = Create>(); - - var hostResult = new HostObjectBuilderResult([], []); - - accountService.Setup(x => x.GetAccountWithServerUrlFallback(accountId, serverUrl)).Returns(account); - receiveVersionRetriever.Setup(x => x.GetVersion(account, receiveInfo, ct)).ReturnsAsync(version); - receiveVersionRetriever - .Setup(x => x.VersionReceived(account, version, receiveInfo, ct)) - .Returns(Task.CompletedTask); - hostObjectBuilder.Setup(x => x.Build(@base, projectName, modelName, progress.Object, ct)).ReturnsAsync(hostResult); - - threadContext.Setup(x => x.RunOnThreadAsync(It.IsAny>>(), false)).ReturnsAsync(@base); - - var sp = CreateServices(Assembly.GetExecutingAssembly()).BuildServiceProvider(); - var receiveOperation = ActivatorUtilities.CreateInstance( - sp, - hostObjectBuilder.Object, - accountService.Object, - receiveProgress.Object, - activityFactory.Object, - operations.Object, - receiveVersionRetriever.Object, - threadContext.Object - ); - var result = await receiveOperation.Execute(receiveInfo, progress.Object, ct); - result.Should().Be(hostResult); - } - - [Test] - public async Task ReceiveData() - { - var hostObjectBuilder = Create(); - var accountService = Create(); - var receiveProgress = Create(); - var operations = Create(); - var receiveVersionRetriever = Create(); - var activityFactory = Create(MockBehavior.Loose); - var threadContext = Create(); - - var @base = new TestBase(); - var token = "token"; - var serverUrl = new Uri("https://localhost"); - var projectId = "projectId"; - var account = new Account() - { - token = token, - serverInfo = new ServerInfo() { url = serverUrl.ToString() } - }; - string referencedObject = "referencedObject"; - var version = new Speckle.Sdk.Api.GraphQL.Models.Version() { referencedObject = referencedObject }; - - var ct = new CancellationToken(); - var receiveInfo = new ReceiveInfo( - string.Empty, - serverUrl, - projectId, - string.Empty, - string.Empty, - string.Empty, - string.Empty, - string.Empty - ); - var progress = Create>(); - - receiveProgress.Setup(x => x.Begin()); - operations - .Setup(x => x.Receive2(serverUrl, projectId, referencedObject, token, It.IsAny(), ct)) - .ReturnsAsync(@base); - - var sp = CreateServices(Assembly.GetExecutingAssembly()).BuildServiceProvider(); - var receiveOperation = ActivatorUtilities.CreateInstance( - sp, - hostObjectBuilder.Object, - accountService.Object, - receiveProgress.Object, - activityFactory.Object, - operations.Object, - receiveVersionRetriever.Object, - threadContext.Object - ); - var result = await receiveOperation.ReceiveData(account, version, receiveInfo, progress.Object, ct); - result.Should().Be(@base); - } -} diff --git a/Sdk/Speckle.Connectors.Common.Tests/Operations/SendOperationTests.cs b/Sdk/Speckle.Connectors.Common.Tests/Operations/SendOperationTests.cs index 2cebde68c..ef3a578c5 100644 --- a/Sdk/Speckle.Connectors.Common.Tests/Operations/SendOperationTests.cs +++ b/Sdk/Speckle.Connectors.Common.Tests/Operations/SendOperationTests.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using FluentAssertions; using Microsoft.Extensions.DependencyInjection; using Moq; diff --git a/Sdk/Speckle.Connectors.Common.Tests/packages.lock.json b/Sdk/Speckle.Connectors.Common.Tests/packages.lock.json index 23f9001e6..de71b3775 100644 --- a/Sdk/Speckle.Connectors.Common.Tests/packages.lock.json +++ b/Sdk/Speckle.Connectors.Common.Tests/packages.lock.json @@ -319,10 +319,8 @@ "speckle.testing": { "type": "Project", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Moq": "[4.20.70, )", - "NUnit": "[4.1.0, )", - "Speckle.Sdk": "[3.2.0, )" + "NUnit": "[4.1.0, )" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { diff --git a/Sdk/Speckle.Connectors.Common/ContainerRegistration.cs b/Sdk/Speckle.Connectors.Common/ContainerRegistration.cs index d7bfe9144..990d5bf53 100644 --- a/Sdk/Speckle.Connectors.Common/ContainerRegistration.cs +++ b/Sdk/Speckle.Connectors.Common/ContainerRegistration.cs @@ -12,13 +12,12 @@ public static class ContainerRegistration { public static void AddConnectors(this IServiceCollection serviceCollection) { - serviceCollection.AddMatchingInterfacesAsTransient(Assembly.GetExecutingAssembly()); - // send operation and dependencies serviceCollection.AddSingleton(); serviceCollection.AddScoped(); serviceCollection.AddScoped(); - serviceCollection.AddSingleton(); + serviceCollection.AddSingleton(); + serviceCollection.AddMatchingInterfacesAsTransient(Assembly.GetExecutingAssembly()); serviceCollection.AddTransient(typeof(ILogger<>), typeof(Logger<>)); } diff --git a/Sdk/Speckle.Connectors.Common/Operations/ReceiveOperation.cs b/Sdk/Speckle.Connectors.Common/Operations/ReceiveOperation.cs index 717760fc3..c9bc6080c 100644 --- a/Sdk/Speckle.Connectors.Common/Operations/ReceiveOperation.cs +++ b/Sdk/Speckle.Connectors.Common/Operations/ReceiveOperation.cs @@ -11,11 +11,11 @@ namespace Speckle.Connectors.Common.Operations; public sealed class ReceiveOperation( IHostObjectBuilder hostObjectBuilder, - IAccountService accountService, + AccountService accountService, IReceiveProgress receiveProgress, ISdkActivityFactory activityFactory, IOperations operations, - IReceiveVersionRetriever receiveVersionRetriever, + IClientFactory clientFactory, IThreadContext threadContext ) { @@ -30,8 +30,10 @@ public sealed class ReceiveOperation( execute?.SetTag("receiveInfo", receiveInfo); // 2 - Check account exist Account account = accountService.GetAccountWithServerUrlFallback(receiveInfo.AccountId, receiveInfo.ServerUrl); + using var apiClient = clientFactory.Create(account); using var userScope = ActivityScope.SetTag(Consts.USER_ID, account.GetHashedEmail()); - var version = await receiveVersionRetriever.GetVersion(account, receiveInfo, cancellationToken); + + var version = await apiClient.Version.Get(receiveInfo.SelectedVersionId, receiveInfo.ProjectId, cancellationToken); cancellationToken.ThrowIfCancellationRequested(); var commitObject = await threadContext.RunOnWorkerAsync( @@ -48,12 +50,15 @@ public sealed class ReceiveOperation( .ConfigureAwait(false); cancellationToken.ThrowIfCancellationRequested(); - await receiveVersionRetriever.VersionReceived(account, version, receiveInfo, cancellationToken); + await apiClient.Version.Received( + new(version.id, receiveInfo.ProjectId, receiveInfo.SourceApplication), + cancellationToken + ); return res; } - public async Task ReceiveData( + private async Task ReceiveData( Account account, Speckle.Sdk.Api.GraphQL.Models.Version version, ReceiveInfo receiveInfo, diff --git a/Sdk/Speckle.Connectors.Common/Operations/ReceiveVersionRetriever.cs b/Sdk/Speckle.Connectors.Common/Operations/ReceiveVersionRetriever.cs deleted file mode 100644 index fb3d43e32..000000000 --- a/Sdk/Speckle.Connectors.Common/Operations/ReceiveVersionRetriever.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Speckle.InterfaceGenerator; -using Speckle.Sdk.Api; -using Speckle.Sdk.Credentials; - -namespace Speckle.Connectors.Common.Operations; - -[GenerateAutoInterface] -public class ReceiveVersionRetriever(IClientFactory clientFactory) : IReceiveVersionRetriever -{ - public async Task GetVersion( - Account account, - ReceiveInfo receiveInfo, - CancellationToken cancellationToken - ) - { - using var apiClient = clientFactory.Create(account); - - var version = await apiClient.Version.Get(receiveInfo.SelectedVersionId, receiveInfo.ProjectId, cancellationToken); - return version; - } - - public async Task VersionReceived( - Account account, - Speckle.Sdk.Api.GraphQL.Models.Version version, - ReceiveInfo receiveInfo, - CancellationToken cancellationToken - ) - { - using var apiClient = clientFactory.Create(account); - - await apiClient.Version.Received( - new(version.id, receiveInfo.ProjectId, receiveInfo.SourceApplication), - cancellationToken - ); - } -} diff --git a/Sdk/Speckle.Connectors.Tests/ActivityScopeTests.cs b/Sdk/Speckle.Connectors.Tests/ActivityScopeTests.cs new file mode 100644 index 000000000..e92d64788 --- /dev/null +++ b/Sdk/Speckle.Connectors.Tests/ActivityScopeTests.cs @@ -0,0 +1,16 @@ +using FluentAssertions; +using NUnit.Framework; + +namespace Speckle.Connectors.Tests; + +public class ActivityScopeTests +{ + [Test] + public async Task TestAsyncLocal() + { + Logging.ActivityScope.SetTag("test", "me"); + await Task.Delay(10); + Logging.ActivityScope.Tags.ContainsKey("test").Should().BeTrue(); + Logging.ActivityScope.Tags["test"].Should().Be("me"); + } +} diff --git a/Sdk/Speckle.Connectors.Common.Tests/Operations/ProgressDisplayManagerTests.cs b/Sdk/Speckle.Connectors.Tests/ProgressDisplayManagerTests.cs similarity index 95% rename from Sdk/Speckle.Connectors.Common.Tests/Operations/ProgressDisplayManagerTests.cs rename to Sdk/Speckle.Connectors.Tests/ProgressDisplayManagerTests.cs index 1f9905ed1..ff8cc11ff 100644 --- a/Sdk/Speckle.Connectors.Common.Tests/Operations/ProgressDisplayManagerTests.cs +++ b/Sdk/Speckle.Connectors.Tests/ProgressDisplayManagerTests.cs @@ -4,7 +4,7 @@ using Speckle.Connectors.Common.Operations; using Speckle.Sdk.Transports; using Speckle.Testing; -namespace Speckle.Connectors.Common.Tests.Operations; +namespace Speckle.Connectors.Tests; public class ProgressDisplayManagerTests : MoqTest { diff --git a/Sdk/Speckle.Connectors.Tests/Speckle.Connectors.Tests.csproj b/Sdk/Speckle.Connectors.Tests/Speckle.Connectors.Tests.csproj new file mode 100644 index 000000000..31f3fd8cf --- /dev/null +++ b/Sdk/Speckle.Connectors.Tests/Speckle.Connectors.Tests.csproj @@ -0,0 +1,22 @@ + + + + net8.0 + false + true + Debug;Release;Local + + + + + + + + + + + + + + + diff --git a/Sdk/Speckle.Connectors.Tests/packages.lock.json b/Sdk/Speckle.Connectors.Tests/packages.lock.json new file mode 100644 index 000000000..70e0085e7 --- /dev/null +++ b/Sdk/Speckle.Connectors.Tests/packages.lock.json @@ -0,0 +1,404 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "altcover": { + "type": "Direct", + "requested": "[8.9.3, )", + "resolved": "8.9.3", + "contentHash": "auKC+pDCkLjfhFkSRaAUBu25BOmlLSqucR7YBs/Lkbdc0XRuJoklWafs1KKp+M+VoJ1f0TeMS6B/FO5IeIcu7w==" + }, + "FluentAssertions": { + "type": "Direct", + "requested": "[6.12.1, )", + "resolved": "6.12.1", + "contentHash": "hciWwryyLw3eonfqhFpOMTXyM1/auJChYslEBA+iGJyuBs5O3t/kA8YaeH4iRo/2Fe3ElSYL86C0miivtZ0f3g==", + "dependencies": { + "System.Configuration.ConfigurationManager": "4.4.0" + } + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.11.1, )", + "resolved": "17.11.1", + "contentHash": "U3Ty4BaGoEu+T2bwSko9tWqWUOU16WzSFkq6U8zve75oRBMSLTBdMAZrVNNz1Tq12aCdDom9fcOcM9QZaFHqFg==", + "dependencies": { + "Microsoft.CodeCoverage": "17.11.1", + "Microsoft.TestPlatform.TestHost": "17.11.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.0.3, )", + "resolved": "1.0.3", + "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net461": "1.0.3" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Moq": { + "type": "Direct", + "requested": "[4.20.70, )", + "resolved": "4.20.70", + "contentHash": "4rNnAwdpXJBuxqrOCzCyICXHSImOTRktCgCWXWykuF1qwoIsVvEnR7PjbMk/eLOxWvhmj5Kwt+kDV3RGUYcNwg==", + "dependencies": { + "Castle.Core": "5.1.1" + } + }, + "NUnit": { + "type": "Direct", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "MT/DpAhjtiytzhTgTqIhBuWx4y26PKfDepYUHUM+5uv4TsryHC2jwFo5e6NhWkApCm/G6kZ80dRjdJFuAxq3rg==" + }, + "NUnit.Analyzers": { + "type": "Direct", + "requested": "[4.2.0, )", + "resolved": "4.2.0", + "contentHash": "4fJojPkzdoa4nB2+p6U+fITvPnVvwWSnsmiJ/Dl30xqiL3oxNbYvfeSLVd91hOmEjoUqSwN3Z7j1aFedjqWbUA==" + }, + "NUnit3TestAdapter": { + "type": "Direct", + "requested": "[4.6.0, )", + "resolved": "4.6.0", + "contentHash": "R7e1+a4vuV/YS+ItfL7f//rG+JBvVeVLX4mHzFEZo4W1qEKl8Zz27AqvQSAqo+BtIzUCo4aAJMYa56VXS4hudw==" + }, + "PolySharp": { + "type": "Direct", + "requested": "[1.14.1, )", + "resolved": "1.14.1", + "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ==" + }, + "Speckle.InterfaceGenerator": { + "type": "Direct", + "requested": "[0.9.6, )", + "resolved": "0.9.6", + "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + } + }, + "GraphQL.Client": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0", + "GraphQL.Client.Abstractions.Websocket": "6.0.0", + "System.Reactive": "5.0.0" + } + }, + "GraphQL.Client.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", + "dependencies": { + "GraphQL.Primitives": "6.0.0" + } + }, + "GraphQL.Client.Abstractions.Websocket": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", + "dependencies": { + "GraphQL.Client.Abstractions": "6.0.0" + } + }, + "GraphQL.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "nPJqrcA5iX+Y0kqoT3a+pD/8lrW/V7ayqnEJQsTonSoPz59J8bmoQhcSN4G8+UJ64Hkuf0zuxnfuj2lkHOq4cA==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Data.Sqlite": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "KGxbPeWsQMnmQy43DSBxAFtHz3l2JX8EWBSGUCvT3CuZ8KsuzbkqMIJMDOxWtG8eZSoCDI04aiVQjWuuV8HmSw==", + "dependencies": { + "Microsoft.Data.Sqlite.Core": "7.0.5", + "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" + } + }, + "Microsoft.Data.Sqlite.Core": { + "type": "Transitive", + "resolved": "7.0.5", + "contentHash": "FTerRmQPqHrCrnoUzhBu+E+1DNGwyrAMLqHkAqOOOu5pGfyMOj8qQUBxI/gDtWtG11p49UxSfWmBzRNlwZqfUg==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "nOP8R1mVb/6mZtm2qgAJXn/LFm/2kMjHDAg/QJLFG6CuWYJtaD3p1BwQhufBVvRzL9ceJ/xF0SQ0qsI2GkDQAA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "65MrmXCziWaQFrI0UHkQbesrX5wTwf9XPjY5yFm/VkgJKFJ5gqvXRoXjIZcf2wLi5ZlwGz/oMYfyURVCWbM5iw==", + "dependencies": { + "Microsoft.Extensions.Primitives": "2.2.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "vJ9xvOZCnUAIHcGC3SU35r3HKmHTVIeHzo6u/qzlHAqD8m6xv92MLin4oJntTvkpKxVX3vI1GFFkIQtU3AdlsQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "2.2.0" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "UpZLNLBpIZ0GTebShui7xXYh6DmBHjWM8NxGxZbdQh/bPZ5e6YswqI+bru6BnEL5eWiOdodsXtEz3FROcgi/qg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Primitives": "2.2.0", + "System.ComponentModel.Annotations": "4.5.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "2.2.0", + "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", + "dependencies": { + "System.Memory": "4.5.1", + "System.Runtime.CompilerServices.Unsafe": "4.5.1" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies.net461": { + "type": "Transitive", + "resolved": "1.0.3", + "contentHash": "AmOJZwCqnOCNp6PPcf9joyogScWLtwy0M1WkqfEQ0M9nYwyDD7EX9ZjscKS5iYnyvteX7kzSKFCKt9I9dXA6mA==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "E2jZqAU6JeWEVsyOEOrSW1o1bpHLgb25ypvKNB/moBXPVsFYBPd/Jwi7OrYahG50J83LfHzezYI+GaEkpAotiA==", + "dependencies": { + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.TestPlatform.TestHost": { + "type": "Transitive", + "resolved": "17.11.1", + "contentHash": "DnG+GOqJXO/CkoqlJWeDFTgPhqD/V6VqUIL3vINizCWZ3X+HshCtbbyDdSHQQEjrc2Sl/K3yaxX6s+5LFEdYuw==", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.11.1", + "Newtonsoft.Json": "13.0.1" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "Speckle.Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.2", + "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" + }, + "SQLitePCLRaw.bundle_e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", + "dependencies": { + "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", + "SQLitePCLRaw.provider.e_sqlite3": "2.1.4" + } + }, + "SQLitePCLRaw.core": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", + "dependencies": { + "System.Memory": "4.5.3" + } + }, + "SQLitePCLRaw.lib.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" + }, + "SQLitePCLRaw.provider.e_sqlite3": { + "type": "Transitive", + "resolved": "2.1.4", + "contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", + "dependencies": { + "SQLitePCLRaw.core": "2.1.4" + } + }, + "System.ComponentModel.Annotations": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==" + }, + "System.Configuration.ConfigurationManager": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "gWwQv/Ug1qWJmHCmN17nAbxJYmQBM/E94QxKLksvUiiKB1Ld3Sc/eK1lgmbSjDFxkQhVuayI/cGFZhpBSodLrg==", + "dependencies": { + "System.Security.Cryptography.ProtectedData": "4.4.0" + } + }, + "System.Diagnostics.EventLog": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.3", + "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" + }, + "System.Reactive": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" + }, + "speckle.connectors.common": { + "type": "Project", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", + "Speckle.Connectors.Logging": "[1.0.0, )", + "Speckle.Objects": "[3.2.0, )", + "Speckle.Sdk": "[3.2.0, )", + "Speckle.Sdk.Dependencies": "[3.2.0, )" + } + }, + "speckle.connectors.logging": { + "type": "Project" + }, + "speckle.testing": { + "type": "Project", + "dependencies": { + "Moq": "[4.20.70, )", + "NUnit": "[4.1.0, )" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "MZtBIwfDFork5vfjpJdG5g8wuJFt7d/y3LOSVVtDK/76wlbtz6cjltfKHqLx2TKVqTj5/c41t77m1+h20zqtPA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "CentralTransitive", + "requested": "[8.0.0, )", + "resolved": "2.2.0", + "contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" + }, + "Microsoft.Extensions.Logging": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "Nxqhadc9FCmFHzU+fz3oc8sFlE6IadViYg8dfUdGzJZ2JUxnCsRghBhhOWdM4B2zSZqEc+0BjliBh/oNdRZuig==", + "dependencies": { + "Microsoft.Extensions.Configuration.Binder": "2.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging.Abstractions": "2.2.0", + "Microsoft.Extensions.Options": "2.2.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "CentralTransitive", + "requested": "[2.2.0, )", + "resolved": "2.2.0", + "contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" + }, + "Speckle.DoubleNumerics": { + "type": "CentralTransitive", + "requested": "[4.1.0, )", + "resolved": "4.1.0", + "contentHash": "20DtS+FsDRsOD9+AU3TwNFZ0qrKo5f6f7B5ZR9wStsIHHHC9k7DpjbCvuNtmnSjx54MD+TJC7wV2f5iyGVPj1A==" + }, + "Speckle.Objects": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "ZgsbDz31Rq87Gtej2soLjTTBaRnnERKvs0QCT2AjGD4Vn5QwqnagPDqFTndWz+w6vG4t2hZH56QfqAmyIiuPag==", + "dependencies": { + "Speckle.Sdk": "3.2.0" + } + }, + "Speckle.Sdk": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "DI3ljov8FMIAIosm3quAXlgYKWS+AJriaFC9dGBJh4y1xg4jvD8Tpx4h7Wd3Bib9BsH6Bhe5BUwACLv7dJKxIg==", + "dependencies": { + "GraphQL.Client": "6.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.Data.Sqlite": "7.0.5", + "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", + "Microsoft.Extensions.Logging": "2.2.0", + "Speckle.DoubleNumerics": "4.1.0", + "Speckle.Newtonsoft.Json": "13.0.2", + "Speckle.Sdk.Dependencies": "3.2.0" + } + }, + "Speckle.Sdk.Dependencies": { + "type": "CentralTransitive", + "requested": "[3.2.0, )", + "resolved": "3.2.0", + "contentHash": "wgUjHJN8lPF47tAht+2gm8yF2dIQXxTXhoJttzb+89o2ej1jrdwxTUQP1EtfjnixK6QApJ809QQqTbJm5sdaqA==" + } + } + } +} \ No newline at end of file diff --git a/Sdk/Speckle.Converters.Common.Tests/packages.lock.json b/Sdk/Speckle.Converters.Common.Tests/packages.lock.json index 17d5fedec..4aa2aa454 100644 --- a/Sdk/Speckle.Converters.Common.Tests/packages.lock.json +++ b/Sdk/Speckle.Converters.Common.Tests/packages.lock.json @@ -328,10 +328,8 @@ "speckle.testing": { "type": "Project", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Moq": "[4.20.70, )", - "NUnit": "[4.1.0, )", - "Speckle.Sdk": "[3.2.0, )" + "NUnit": "[4.1.0, )" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { diff --git a/Sdk/Speckle.Converters.Common/ConverterSettingsStore.cs b/Sdk/Speckle.Converters.Common/ConverterSettingsStore.cs index 1300887ee..979487427 100644 --- a/Sdk/Speckle.Converters.Common/ConverterSettingsStore.cs +++ b/Sdk/Speckle.Converters.Common/ConverterSettingsStore.cs @@ -1,8 +1,5 @@ -using Speckle.InterfaceGenerator; - namespace Speckle.Converters.Common; -[GenerateAutoInterface] public sealed class ConverterSettingsStore : IConverterSettingsStore where T : class { diff --git a/Sdk/Speckle.Converters.Common/IConverterSettingsStore.cs b/Sdk/Speckle.Converters.Common/IConverterSettingsStore.cs new file mode 100644 index 000000000..5b1e96a72 --- /dev/null +++ b/Sdk/Speckle.Converters.Common/IConverterSettingsStore.cs @@ -0,0 +1,9 @@ +namespace Speckle.Converters.Common; + +public interface IConverterSettingsStore + where T : class +{ + T Current { get; } + IDisposable Push(Func nextContext); + void Initialize(T context); +} diff --git a/Sdk/Speckle.Converters.Common/IRootElementProvider.cs b/Sdk/Speckle.Converters.Common/IRootElementProvider.cs new file mode 100644 index 000000000..e183c154a --- /dev/null +++ b/Sdk/Speckle.Converters.Common/IRootElementProvider.cs @@ -0,0 +1,6 @@ +namespace Speckle.Converters.Common; + +public interface IRootElementProvider +{ + Type GetRootType(); +} diff --git a/Sdk/Speckle.Converters.Common/RecursiveConverterResolver.cs b/Sdk/Speckle.Converters.Common/RecursiveConverterResolver.cs new file mode 100644 index 000000000..5f282702b --- /dev/null +++ b/Sdk/Speckle.Converters.Common/RecursiveConverterResolver.cs @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Sdk/Speckle.Testing/MoqTest.cs b/Sdk/Speckle.Testing/MoqTest.cs index 6a499ba0e..1b7c80dc6 100644 --- a/Sdk/Speckle.Testing/MoqTest.cs +++ b/Sdk/Speckle.Testing/MoqTest.cs @@ -1,9 +1,6 @@ using System.Diagnostics.CodeAnalysis; -using System.Reflection; -using Microsoft.Extensions.DependencyInjection; using Moq; using NUnit.Framework; -using Speckle.Sdk; namespace Speckle.Testing; @@ -20,11 +17,4 @@ public abstract class MoqTest protected Mock Create(MockBehavior behavior = MockBehavior.Strict) where T : class => Repository.Create(behavior); - - protected IServiceCollection CreateServices(params Assembly[] assemblies) - { - var services = new ServiceCollection(); - services.AddSpeckleSdk(new("Tests", "tests"), "test", assemblies); - return services; - } } diff --git a/Sdk/Speckle.Testing/Speckle.Testing.csproj b/Sdk/Speckle.Testing/Speckle.Testing.csproj index 3bc3ba28e..add66ce96 100644 --- a/Sdk/Speckle.Testing/Speckle.Testing.csproj +++ b/Sdk/Speckle.Testing/Speckle.Testing.csproj @@ -5,9 +5,7 @@ Debug;Release;Local - - diff --git a/Sdk/Speckle.Testing/packages.lock.json b/Sdk/Speckle.Testing/packages.lock.json index f3af03ef5..f26206fc4 100644 --- a/Sdk/Speckle.Testing/packages.lock.json +++ b/Sdk/Speckle.Testing/packages.lock.json @@ -2,15 +2,6 @@ "version": 2, "dependencies": { "net8.0": { - "Microsoft.Extensions.DependencyInjection": { - "type": "Direct", - "requested": "[2.2.0, )", - "resolved": "2.2.0", - "contentHash": "MZtBIwfDFork5vfjpJdG5g8wuJFt7d/y3LOSVVtDK/76wlbtz6cjltfKHqLx2TKVqTj5/c41t77m1+h20zqtPA==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0" - } - }, "Microsoft.NETFramework.ReferenceAssemblies": { "type": "Direct", "requested": "[1.0.3, )", @@ -57,22 +48,6 @@ "resolved": "0.9.6", "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" }, - "Speckle.Sdk": { - "type": "Direct", - "requested": "[3.2.0, )", - "resolved": "3.2.0", - "contentHash": "DI3ljov8FMIAIosm3quAXlgYKWS+AJriaFC9dGBJh4y1xg4jvD8Tpx4h7Wd3Bib9BsH6Bhe5BUwACLv7dJKxIg==", - "dependencies": { - "GraphQL.Client": "6.0.0", - "Microsoft.CSharp": "4.7.0", - "Microsoft.Data.Sqlite": "7.0.5", - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", - "Microsoft.Extensions.Logging": "2.2.0", - "Speckle.DoubleNumerics": "4.1.0", - "Speckle.Newtonsoft.Json": "13.0.2", - "Speckle.Sdk.Dependencies": "3.2.0" - } - }, "Castle.Core": { "type": "Transitive", "resolved": "5.1.1", @@ -81,112 +56,11 @@ "System.Diagnostics.EventLog": "6.0.0" } }, - "GraphQL.Client": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "8yPNBbuVBpTptivyAlak4GZvbwbUcjeQTL4vN1HKHRuOykZ4r7l5fcLS6vpyPyLn0x8FsL31xbOIKyxbmR9rbA==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0", - "GraphQL.Client.Abstractions.Websocket": "6.0.0", - "System.Reactive": "5.0.0" - } - }, - "GraphQL.Client.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "h7uzWFORHZ+CCjwr/ThAyXMr0DPpzEANDa4Uo54wqCQ+j7qUKwqYTgOrb1W40sqbvNaZm9v/X7It31SUw0maHA==", - "dependencies": { - "GraphQL.Primitives": "6.0.0" - } - }, - "GraphQL.Client.Abstractions.Websocket": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Nr9bPf8gIOvLuXpqEpqr9z9jslYFJOvd0feHth3/kPqeR3uMbjF5pjiwh4jxyMcxHdr8Pb6QiXkV3hsSyt0v7A==", - "dependencies": { - "GraphQL.Client.Abstractions": "6.0.0" - } - }, - "GraphQL.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "yg72rrYDapfsIUrul7aF6wwNnTJBOFvuA9VdDTQpPa8AlAriHbufeXYLBcodKjfUdkCnaiggX1U/nEP08Zb5GA==" - }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Data.Sqlite": { - "type": "Transitive", - "resolved": "7.0.5", - "contentHash": "KGxbPeWsQMnmQy43DSBxAFtHz3l2JX8EWBSGUCvT3CuZ8KsuzbkqMIJMDOxWtG8eZSoCDI04aiVQjWuuV8HmSw==", - "dependencies": { - "Microsoft.Data.Sqlite.Core": "7.0.5", - "SQLitePCLRaw.bundle_e_sqlite3": "2.1.4" - } - }, - "Microsoft.Data.Sqlite.Core": { - "type": "Transitive", - "resolved": "7.0.5", - "contentHash": "FTerRmQPqHrCrnoUzhBu+E+1DNGwyrAMLqHkAqOOOu5pGfyMOj8qQUBxI/gDtWtG11p49UxSfWmBzRNlwZqfUg==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "nOP8R1mVb/6mZtm2qgAJXn/LFm/2kMjHDAg/QJLFG6CuWYJtaD3p1BwQhufBVvRzL9ceJ/xF0SQ0qsI2GkDQAA==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "2.2.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "65MrmXCziWaQFrI0UHkQbesrX5wTwf9XPjY5yFm/VkgJKFJ5gqvXRoXjIZcf2wLi5ZlwGz/oMYfyURVCWbM5iw==", - "dependencies": { - "Microsoft.Extensions.Primitives": "2.2.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "vJ9xvOZCnUAIHcGC3SU35r3HKmHTVIeHzo6u/qzlHAqD8m6xv92MLin4oJntTvkpKxVX3vI1GFFkIQtU3AdlsQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "2.2.0" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "f9hstgjVmr6rmrfGSpfsVOl2irKAgr1QjrSi3FgnS7kulxband50f2brRLwySAQTADPZeTdow0mpSMcoAdadCw==" - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "UpZLNLBpIZ0GTebShui7xXYh6DmBHjWM8NxGxZbdQh/bPZ5e6YswqI+bru6BnEL5eWiOdodsXtEz3FROcgi/qg==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", - "Microsoft.Extensions.Primitives": "2.2.0", - "System.ComponentModel.Annotations": "4.5.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "2.2.0", - "contentHash": "azyQtqbm4fSaDzZHD/J+V6oWMFaf2tWP4WEGIYePLCMw3+b2RQdj9ybgbQyjCshcitQKQ4lEDOZjmSlTTrHxUg==", - "dependencies": { - "System.Memory": "4.5.1", - "System.Runtime.CompilerServices.Unsafe": "4.5.1" - } - }, "Microsoft.NETFramework.ReferenceAssemblies.net461": { "type": "Transitive", "resolved": "1.0.3", @@ -197,95 +71,10 @@ "resolved": "8.0.0", "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" }, - "Speckle.Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.2", - "contentHash": "g1BejUZwax5PRfL6xHgLEK23sqHWOgOj9hE7RvfRRlN00AGt8GnPYt8HedSK7UB3HiRW8zCA9Pn0iiYxCK24BA==" - }, - "SQLitePCLRaw.bundle_e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "EWI1olKDjFEBMJu0+3wuxwziIAdWDVMYLhuZ3Qs84rrz+DHwD00RzWPZCa+bLnHCf3oJwuFZIRsHT5p236QXww==", - "dependencies": { - "SQLitePCLRaw.lib.e_sqlite3": "2.1.4", - "SQLitePCLRaw.provider.e_sqlite3": "2.1.4" - } - }, - "SQLitePCLRaw.core": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "inBjvSHo9UDKneGNzfUfDjK08JzlcIhn1+SP5Y3m6cgXpCxXKCJDy6Mka7LpgSV+UZmKSnC8rTwB0SQ0xKu5pA==", - "dependencies": { - "System.Memory": "4.5.3" - } - }, - "SQLitePCLRaw.lib.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "2C9Q9eX7CPLveJA0rIhf9RXAvu+7nWZu1A2MdG6SD/NOu26TakGgL1nsbc0JAspGijFOo3HoN79xrx8a368fBg==" - }, - "SQLitePCLRaw.provider.e_sqlite3": { - "type": "Transitive", - "resolved": "2.1.4", - "contentHash": "CSlb5dUp1FMIkez9Iv5EXzpeq7rHryVNqwJMWnpq87j9zWZexaEMdisDktMsnnrzKM6ahNrsTkjqNodTBPBxtQ==", - "dependencies": { - "SQLitePCLRaw.core": "2.1.4" - } - }, - "System.ComponentModel.Annotations": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==" - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.3", - "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==" - }, - "Microsoft.Extensions.Logging": { - "type": "CentralTransitive", - "requested": "[2.2.0, )", - "resolved": "2.2.0", - "contentHash": "Nxqhadc9FCmFHzU+fz3oc8sFlE6IadViYg8dfUdGzJZ2JUxnCsRghBhhOWdM4B2zSZqEc+0BjliBh/oNdRZuig==", - "dependencies": { - "Microsoft.Extensions.Configuration.Binder": "2.2.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "2.2.0", - "Microsoft.Extensions.Logging.Abstractions": "2.2.0", - "Microsoft.Extensions.Options": "2.2.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "CentralTransitive", - "requested": "[2.2.0, )", - "resolved": "2.2.0", - "contentHash": "B2WqEox8o+4KUOpL7rZPyh6qYjik8tHi2tN8Z9jZkHzED8ElYgZa/h6K+xliB435SqUcWT290Fr2aa8BtZjn8A==" - }, - "Speckle.DoubleNumerics": { - "type": "CentralTransitive", - "requested": "[4.1.0, )", - "resolved": "4.1.0", - "contentHash": "20DtS+FsDRsOD9+AU3TwNFZ0qrKo5f6f7B5ZR9wStsIHHHC9k7DpjbCvuNtmnSjx54MD+TJC7wV2f5iyGVPj1A==" - }, - "Speckle.Sdk.Dependencies": { - "type": "CentralTransitive", - "requested": "[3.2.0, )", - "resolved": "3.2.0", - "contentHash": "wgUjHJN8lPF47tAht+2gm8yF2dIQXxTXhoJttzb+89o2ej1jrdwxTUQP1EtfjnixK6QApJ809QQqTbJm5sdaqA==" } } } diff --git a/Speckle.Connectors.sln b/Speckle.Connectors.sln index 3c12daf6c..2a13c63c0 100644 --- a/Speckle.Connectors.sln +++ b/Speckle.Connectors.sln @@ -92,6 +92,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Civil3d2 EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Speckle.Converters.RhinoShared", "Converters\Rhino\Speckle.Converters.RhinoShared\Speckle.Converters.RhinoShared.shproj", "{E1C43415-3200-45F4-8BF9-A4DD7D7F2ED9}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Rhino7.Tests", "Converters\Rhino\Speckle.Converters.Rhino7.Tests\Speckle.Converters.Rhino7.Tests.csproj", "{AC2DB416-F05C-4296-9040-56D6AD4FCD27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Revit2023.Tests", "Converters\Revit\Speckle.Converters.Revit2023.Tests\Speckle.Converters.Revit2023.Tests.csproj", "{68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Testing", "Sdk\Speckle.Testing\Speckle.Testing.csproj", "{A3869243-B462-4986-914B-94E407D8D20F}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Revit2024", "Connectors\Revit\Speckle.Connectors.Revit2024\Speckle.Connectors.Revit2024.csproj", "{617BD3C7-87D9-4D28-8AC9-4910945BB9FC}" @@ -106,6 +110,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{FC2246 EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Speckle.Converters.RevitShared.Tests", "Converters\Revit\Speckle.Converters.RevitShared.Tests\Speckle.Converters.RevitShared.Tests.shproj", "{E1C43415-3202-45F4-8BF9-A4DD7D7F2ED6}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Revit2024.Tests", "Converters\Revit\Speckle.Converters.Revit2024.Tests\Speckle.Converters.Revit2024.Tests.csproj", "{C32274D9-1B66-4D5C-82F9-EB3F10F46752}" +EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Speckle.Connectors.RevitShared.Cef", "Connectors\Revit\Speckle.Connectors.RevitShared.Cef\Speckle.Connectors.RevitShared.Cef.shproj", "{6A40CBE4-ECAB-4CED-9917-5C64CBF75DA6}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2025", "2025", "{8AC2AD6D-6C74-4B24-8DF6-42717FC9B804}" @@ -122,6 +128,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2022", "2022", "{0AF38BA3-6 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.DUI.Tests", "DUI3\Speckle.Connectors.DUI.Tests\Speckle.Connectors.DUI.Tests.csproj", "{EB83A3A3-F9B6-4281-8EBF-F7289FB5D885}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Revit2022.Tests", "Converters\Revit\Speckle.Converters.Revit2022.Tests\Speckle.Converters.Revit2022.Tests.csproj", "{D8069A23-AD2E-4C9E-8574-7E8C45296A46}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2023", "2023", "{2D5AE63D-85C0-43D1-84BF-04418ED93F63}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2024", "2024", "{2F45036E-D817-41E9-B82F-DBE013EC95D0}" @@ -148,6 +156,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Autocad2 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Converters.Autocad2025", "Converters\Autocad\Speckle.Converters.Autocad2025\Speckle.Converters.Autocad2025.csproj", "{9D66EDE4-AFC2-4F00-B40C-A7E878A2972F}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Tests", "Sdk\Speckle.Connectors.Tests\Speckle.Connectors.Tests.csproj", "{5B9A550A-9314-4E91-884E-E54960F589FB}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Speckle.Connectors.Logging", "Sdk\Speckle.Connectors.Logging\Speckle.Connectors.Logging.csproj", "{8098BAFC-DF1C-4AFA-A93E-08121E6D09D4}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tekla", "Tekla", "{696086E4-D8CC-4FE0-A9B3-5F10B9089B55}" @@ -419,6 +429,18 @@ Global {25172C49-7AA4-4739-BB07-69785094C379}.Local|Any CPU.Build.0 = Local|Any CPU {25172C49-7AA4-4739-BB07-69785094C379}.Release|Any CPU.ActiveCfg = Release|Any CPU {25172C49-7AA4-4739-BB07-69785094C379}.Release|Any CPU.Build.0 = Release|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Local|Any CPU.ActiveCfg = Local|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Local|Any CPU.Build.0 = Local|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AC2DB416-F05C-4296-9040-56D6AD4FCD27}.Release|Any CPU.Build.0 = Release|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Local|Any CPU.ActiveCfg = Local|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Local|Any CPU.Build.0 = Local|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051}.Release|Any CPU.Build.0 = Release|Any CPU {A3869243-B462-4986-914B-94E407D8D20F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A3869243-B462-4986-914B-94E407D8D20F}.Debug|Any CPU.Build.0 = Debug|Any CPU {A3869243-B462-4986-914B-94E407D8D20F}.Local|Any CPU.ActiveCfg = Local|Any CPU @@ -437,6 +459,12 @@ Global {67B888D9-C6C4-49F1-883C-5B964151D889}.Local|Any CPU.Build.0 = Local|Any CPU {67B888D9-C6C4-49F1-883C-5B964151D889}.Release|Any CPU.ActiveCfg = Release|Any CPU {67B888D9-C6C4-49F1-883C-5B964151D889}.Release|Any CPU.Build.0 = Release|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Local|Any CPU.ActiveCfg = Local|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Local|Any CPU.Build.0 = Local|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C32274D9-1B66-4D5C-82F9-EB3F10F46752}.Release|Any CPU.Build.0 = Release|Any CPU {A6DE3DA0-B242-4F49-AEF0-4E26AF92D16C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A6DE3DA0-B242-4F49-AEF0-4E26AF92D16C}.Debug|Any CPU.Build.0 = Debug|Any CPU {A6DE3DA0-B242-4F49-AEF0-4E26AF92D16C}.Local|Any CPU.ActiveCfg = Local|Any CPU @@ -467,6 +495,12 @@ Global {EB83A3A3-F9B6-4281-8EBF-F7289FB5D885}.Local|Any CPU.Build.0 = Local|Any CPU {EB83A3A3-F9B6-4281-8EBF-F7289FB5D885}.Release|Any CPU.ActiveCfg = Release|Any CPU {EB83A3A3-F9B6-4281-8EBF-F7289FB5D885}.Release|Any CPU.Build.0 = Release|Any CPU + {D8069A23-AD2E-4C9E-8574-7E8C45296A46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8069A23-AD2E-4C9E-8574-7E8C45296A46}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8069A23-AD2E-4C9E-8574-7E8C45296A46}.Local|Any CPU.ActiveCfg = Local|Any CPU + {D8069A23-AD2E-4C9E-8574-7E8C45296A46}.Local|Any CPU.Build.0 = Local|Any CPU + {D8069A23-AD2E-4C9E-8574-7E8C45296A46}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D8069A23-AD2E-4C9E-8574-7E8C45296A46}.Release|Any CPU.Build.0 = Release|Any CPU {A6E3A82F-4696-4D92-ABA1-38AA80752067}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A6E3A82F-4696-4D92-ABA1-38AA80752067}.Debug|Any CPU.Build.0 = Debug|Any CPU {A6E3A82F-4696-4D92-ABA1-38AA80752067}.Local|Any CPU.ActiveCfg = Local|Any CPU @@ -491,6 +525,12 @@ Global {9D66EDE4-AFC2-4F00-B40C-A7E878A2972F}.Local|Any CPU.Build.0 = Local|Any CPU {9D66EDE4-AFC2-4F00-B40C-A7E878A2972F}.Release|Any CPU.ActiveCfg = Release|Any CPU {9D66EDE4-AFC2-4F00-B40C-A7E878A2972F}.Release|Any CPU.Build.0 = Release|Any CPU + {5B9A550A-9314-4E91-884E-E54960F589FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B9A550A-9314-4E91-884E-E54960F589FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B9A550A-9314-4E91-884E-E54960F589FB}.Local|Any CPU.ActiveCfg = Local|Any CPU + {5B9A550A-9314-4E91-884E-E54960F589FB}.Local|Any CPU.Build.0 = Local|Any CPU + {5B9A550A-9314-4E91-884E-E54960F589FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B9A550A-9314-4E91-884E-E54960F589FB}.Release|Any CPU.Build.0 = Release|Any CPU {8098BAFC-DF1C-4AFA-A93E-08121E6D09D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8098BAFC-DF1C-4AFA-A93E-08121E6D09D4}.Debug|Any CPU.Build.0 = Debug|Any CPU {8098BAFC-DF1C-4AFA-A93E-08121E6D09D4}.Local|Any CPU.ActiveCfg = Local|Any CPU @@ -777,6 +817,8 @@ Global {C2DE264A-AA87-4012-B954-17E3F403A237} = {2F45036E-D817-41E9-B82F-DBE013EC95D0} {25172C49-7AA4-4739-BB07-69785094C379} = {2F45036E-D817-41E9-B82F-DBE013EC95D0} {E1C43415-3200-45F4-8BF9-A4DD7D7F2ED9} = {9039209B-7244-483B-B668-D3CE31B304C1} + {AC2DB416-F05C-4296-9040-56D6AD4FCD27} = {19006AA9-C099-467C-B07A-C64B3BFDA1F4} + {68CF9BDF-94AC-4D2D-A7BD-D1C064F97051} = {E9DEBA00-50A4-485D-BA65-D8AB3E3467AB} {A3869243-B462-4986-914B-94E407D8D20F} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {617BD3C7-87D9-4D28-8AC9-4910945BB9FC} = {57F59C0C-5687-4AF9-AE1C-1933B539F0E4} {67B888D9-C6C4-49F1-883C-5B964151D889} = {57F59C0C-5687-4AF9-AE1C-1933B539F0E4} @@ -784,6 +826,7 @@ Global {57F59C0C-5687-4AF9-AE1C-1933B539F0E4} = {D92751C8-1039-4005-90B2-913E55E0B8BD} {FC224610-32D3-454E-9BC1-1219FE8ACD5F} = {D92751C8-1039-4005-90B2-913E55E0B8BD} {E1C43415-3202-45F4-8BF9-A4DD7D7F2ED6} = {FC224610-32D3-454E-9BC1-1219FE8ACD5F} + {C32274D9-1B66-4D5C-82F9-EB3F10F46752} = {57F59C0C-5687-4AF9-AE1C-1933B539F0E4} {6A40CBE4-ECAB-4CED-9917-5C64CBF75DA6} = {FC224610-32D3-454E-9BC1-1219FE8ACD5F} {8AC2AD6D-6C74-4B24-8DF6-42717FC9B804} = {D92751C8-1039-4005-90B2-913E55E0B8BD} {A6DE3DA0-B242-4F49-AEF0-4E26AF92D16C} = {8AC2AD6D-6C74-4B24-8DF6-42717FC9B804} @@ -792,6 +835,7 @@ Global {19424B55-058C-4E9C-B86F-700AEF9EAEC3} = {0AF38BA3-65A0-481B-8CBB-B82E406E1575} {0AF38BA3-65A0-481B-8CBB-B82E406E1575} = {D92751C8-1039-4005-90B2-913E55E0B8BD} {EB83A3A3-F9B6-4281-8EBF-F7289FB5D885} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} + {D8069A23-AD2E-4C9E-8574-7E8C45296A46} = {0AF38BA3-65A0-481B-8CBB-B82E406E1575} {2D5AE63D-85C0-43D1-84BF-04418ED93F63} = {804E065F-914C-414A-AF84-009312C3CFF6} {2F45036E-D817-41E9-B82F-DBE013EC95D0} = {804E065F-914C-414A-AF84-009312C3CFF6} {4721AA15-AF6E-4A62-A2C3-65564DC563E6} = {804E065F-914C-414A-AF84-009312C3CFF6} @@ -805,6 +849,7 @@ Global {B2BF1FAE-D0F4-4961-84CB-A00D3CABD236} = {804E065F-914C-414A-AF84-009312C3CFF6} {C70EBB84-BA5B-4F2F-819E-25E0985BA13C} = {B2BF1FAE-D0F4-4961-84CB-A00D3CABD236} {9D66EDE4-AFC2-4F00-B40C-A7E878A2972F} = {B2BF1FAE-D0F4-4961-84CB-A00D3CABD236} + {5B9A550A-9314-4E91-884E-E54960F589FB} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {8098BAFC-DF1C-4AFA-A93E-08121E6D09D4} = {2E00592E-558D-492D-88F9-3ECEE4C0C7DA} {696086E4-D8CC-4FE0-A9B3-5F10B9089B55} = {42826721-9A18-4762-8BA9-F1429DD5C5B1} {2319C00F-B268-4E4C-9F88-6B379E2BBD22} = {26403A46-A8C2-4761-A41D-BCB994C46B70}