3aa993cecb
* Don't log cancelling * redo exception handling for receive * remove null test case * clean up with Id/Json and more cancels * Change the exception stacks * fix serialization test * make a custom scrubber for internalized exceptions * clean up * fix namespaces again :( * adjust the scrubber * try to make tests more predictable * rework exceptions again * strip out compile files used * formatting * custom exception validation * fix init * Move serialization to own class * save serialize test * add deep clean * add cancellation test on save to cache * cancellation tests * format * do DI correctly * receive cancel works
70 lines
2.4 KiB
C#
70 lines
2.4 KiB
C#
#pragma warning disable CA1506
|
|
using System.Reflection;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging.Abstractions;
|
|
using Speckle.Sdk;
|
|
using Speckle.Sdk.Credentials;
|
|
using Speckle.Sdk.Host;
|
|
using Speckle.Sdk.Models;
|
|
using Speckle.Sdk.Serialisation.V2;
|
|
using Speckle.Sdk.Serialisation.V2.Receive;
|
|
using Speckle.Sdk.Serialisation.V2.Send;
|
|
using Speckle.Sdk.Serialization.Testing;
|
|
using Speckle.Sdk.SQLite;
|
|
|
|
const bool skipCacheReceive = false;
|
|
const bool skipCacheSendCheck = true;
|
|
const bool skipCacheSendSave = false;
|
|
TypeLoader.Reset();
|
|
TypeLoader.Initialize(typeof(Base).Assembly, Assembly.GetExecutingAssembly());
|
|
|
|
var url = "https://latest.speckle.systems/projects/a3ac1b2706/models/59d3b0f3c6"; //small?
|
|
var streamId = "a3ac1b2706";
|
|
var rootId = "7d53bcf28c6696ecac8781684a0aa006";
|
|
|
|
/*
|
|
var url = "https://latest.speckle.systems/"; //other?
|
|
var streamId = "368f598929";
|
|
var rootId = "67374cfe689c43ff8be12090af122244";*/
|
|
|
|
/*
|
|
var url = "https://latest.speckle.systems/projects/2099ac4b5f/models/da511c4d1e"; //perf?
|
|
var streamId = "2099ac4b5f";
|
|
var rootId = "30fb4cbe6eb2202b9e7b4a4fcc3dd2b6";*/
|
|
|
|
var serviceCollection = new ServiceCollection();
|
|
serviceCollection.AddSpeckleSdk(HostApplications.Navisworks, HostAppVersion.v2023, "Test");
|
|
var serviceProvider = serviceCollection.BuildServiceProvider();
|
|
|
|
Console.WriteLine("Attach");
|
|
|
|
var token = serviceProvider.GetRequiredService<IAccountManager>().GetDefaultAccount()?.token;
|
|
var progress = new Progress(true);
|
|
|
|
var factory = new SerializeProcessFactory(
|
|
new BaseChildFinder(new BasePropertyGatherer()),
|
|
new ObjectSerializerFactory(new BasePropertyGatherer()),
|
|
new BaseDeserializer(new ObjectDeserializerFactory()),
|
|
serviceProvider.GetRequiredService<ISqLiteJsonCacheManagerFactory>(),
|
|
serviceProvider.GetRequiredService<IServerObjectManagerFactory>(),
|
|
new NullLoggerFactory()
|
|
);
|
|
var process = factory.CreateDeserializeProcess(new Uri(url), streamId, token, progress, default, new(skipCacheReceive));
|
|
var @base = await process.Deserialize(rootId).ConfigureAwait(false);
|
|
Console.WriteLine("Deserialized");
|
|
Console.ReadLine();
|
|
Console.WriteLine("Executing");
|
|
|
|
using var process2 = factory.CreateSerializeProcess(
|
|
new Uri(url),
|
|
streamId,
|
|
token,
|
|
progress,
|
|
default,
|
|
new SerializeProcessOptions(skipCacheSendCheck, skipCacheSendSave, true, true)
|
|
);
|
|
await process2.Serialize(@base).ConfigureAwait(false);
|
|
Console.WriteLine("Detach");
|
|
Console.ReadLine();
|
|
#pragma warning restore CA1506
|