Skip to content

Commit 81a4bb0

Browse files
authored
Skip Kiota factory (#132)
Fixes #114 (hopefully)
1 parent 2bc20f4 commit 81a4bb0

File tree

4 files changed

+79
-48
lines changed

4 files changed

+79
-48
lines changed

src/Svrooij.WinTuner.CmdLets/Commands/DeployWtWin32App.cs

+4-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
using System.Linq;
1515
using Microsoft.Kiota.Abstractions.Serialization;
1616
using Microsoft.Kiota.Abstractions.Extensions;
17+
using WingetIntune.Extensions;
1718

1819
namespace Svrooij.WinTuner.CmdLets.Commands;
1920
/// <summary>
@@ -215,7 +216,7 @@ protected override async Task ProcessAuthenticatedAsync(IAuthenticationProvider
215216
{
216217
logger?.LogDebug("Loading Win32LobApp from file {Win32LobAppFile}", win32LobAppFile);
217218
var json = await File.ReadAllTextAsync(win32LobAppFile, cancellationToken);
218-
App = await KiotaSerializer.DeserializeAsync<GraphModels.Win32LobApp>("application/json", json, cancellationToken);
219+
App = await json!.ParseJson<GraphModels.Win32LobApp>(cancellationToken);
219220
App!.BackingStore.InitializationCompleted = false;
220221
App.BackingStore.ReturnOnlyChangedValues = false;
221222
IntuneWinFile = Path.Combine(PackageFolder, App!.FileName!);
@@ -239,8 +240,9 @@ protected override async Task ProcessAuthenticatedAsync(IAuthenticationProvider
239240

240241
if (RoleScopeTags is not null && RoleScopeTags.Any())
241242
{
242-
logger?.LogInformation("Adding role scope tags to app");
243+
logger?.LogDebug("Adding role scope tags to app");
243244
App.RoleScopeTagIds = RoleScopeTags.AsList();
245+
logger?.LogInformation("Role scope tags added to app {@RoleScopeTags}", App?.RoleScopeTagIds);
244246
}
245247

246248
if (!string.IsNullOrEmpty(OverrideAppName))

src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<ItemGroup>
1717
<PackageReference Include="Azure.Identity" Version="1.13.1" />
1818
<PackageReference Include="Svrooij.PowerShell.DependencyInjection" Version="1.1.4" />
19-
<PackageReference Include="Microsoft.PowerShell.SDK" Version="7.2.19">
19+
<PackageReference Include="Microsoft.PowerShell.SDK" Version="7.2.24">
2020
<PrivateAssets>All</PrivateAssets>
2121
</PackageReference>
2222
</ItemGroup>

src/Svrooij.WinTuner.CmdLets/packages.lock.json

+46-45
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,23 @@
1818
},
1919
"Microsoft.PowerShell.SDK": {
2020
"type": "Direct",
21-
"requested": "[7.2.19, )",
22-
"resolved": "7.2.19",
23-
"contentHash": "St3yuzNDmzmgkDGcfEvEV90jG/J1HQG3W5TKzHXVhagh0DEaJ5TVEAR3He2I5ulr8kbrdwoOW33MJiotV1HNMQ==",
21+
"requested": "[7.2.24, )",
22+
"resolved": "7.2.24",
23+
"contentHash": "5UJbe7jDLiOK3fMd25KQ5KgyaLQ5NSv3DBfC9usNKrQta0GQ3ZgKnSQIsOONls1syy11iT6YObXByjjy7hYbDw==",
2424
"dependencies": {
2525
"Microsoft.Extensions.ObjectPool": "5.0.17",
26-
"Microsoft.Management.Infrastructure.CimCmdlets": "7.2.19",
26+
"Microsoft.Management.Infrastructure.CimCmdlets": "7.2.24",
2727
"Microsoft.NETCore.Windows.ApiSets": "1.0.1",
28-
"Microsoft.PowerShell.Commands.Diagnostics": "7.2.19",
29-
"Microsoft.PowerShell.Commands.Management": "7.2.19",
30-
"Microsoft.PowerShell.Commands.Utility": "7.2.19",
31-
"Microsoft.PowerShell.ConsoleHost": "7.2.19",
32-
"Microsoft.PowerShell.Security": "7.2.19",
33-
"Microsoft.WSMan.Management": "7.2.19",
28+
"Microsoft.PowerShell.Commands.Diagnostics": "7.2.24",
29+
"Microsoft.PowerShell.Commands.Management": "7.2.24",
30+
"Microsoft.PowerShell.Commands.Utility": "7.2.24",
31+
"Microsoft.PowerShell.ConsoleHost": "7.2.24",
32+
"Microsoft.PowerShell.Security": "7.2.24",
33+
"Microsoft.WSMan.Management": "7.2.24",
3434
"Microsoft.Windows.Compatibility": "6.0.8",
3535
"System.Data.SqlClient": "4.8.6",
36-
"System.IO.Packaging": "6.0.0",
37-
"System.Management.Automation": "7.2.19",
36+
"System.IO.Packaging": "6.0.1",
37+
"System.Management.Automation": "7.2.24",
3838
"System.Net.Http.WinHttpHandler": "6.0.1",
3939
"System.Private.ServiceModel": "4.9.0",
4040
"System.ServiceModel.Duplex": "4.9.0",
@@ -420,10 +420,10 @@
420420
},
421421
"Microsoft.Management.Infrastructure.CimCmdlets": {
422422
"type": "Transitive",
423-
"resolved": "7.2.19",
424-
"contentHash": "6xA31DY8e8HEh8upPKGSKO/SQMpq7WdJN7g3nCnDHDWIXILBJGjycQMCDJ5fNBcUrOQocvGrkWq1CkT4sTYVDQ==",
423+
"resolved": "7.2.24",
424+
"contentHash": "QXxZ64KWxucAa44MmlfraHjIjUpHB837I6P5vABdbnAs/dXn74lPhgaCHrb23MVw7y96OxR3EOeGdO2XtJRxrg==",
425425
"dependencies": {
426-
"System.Management.Automation": "7.2.19"
426+
"System.Management.Automation": "7.2.24"
427427
}
428428
},
429429
"Microsoft.Management.Infrastructure.Runtime.Unix": {
@@ -448,25 +448,25 @@
448448
},
449449
"Microsoft.PowerShell.Commands.Diagnostics": {
450450
"type": "Transitive",
451-
"resolved": "7.2.19",
452-
"contentHash": "a16vIXKUiVCjP9IXccice7qsqzJ4yDkqoFf0/mC2Ks/19CBDVZ+NoyThYv+OHrkNRM9l4AlDfY3/YghfIN693A==",
451+
"resolved": "7.2.24",
452+
"contentHash": "mFTiRTUJHlqYG0LnlaUbiMzgzBVRd2H9mN5a41SKF0rXTXE+5wOQKWWctHUocUhbgCjMdYi/kOOHhwfRb4hhzw==",
453453
"dependencies": {
454-
"System.Management.Automation": "7.2.19"
454+
"System.Management.Automation": "7.2.24"
455455
}
456456
},
457457
"Microsoft.PowerShell.Commands.Management": {
458458
"type": "Transitive",
459-
"resolved": "7.2.19",
460-
"contentHash": "htZvTe79+RgW/qR43u4mdwVIhT8xgaKaJdovOEGZlQHbHuYolzPhr30I/PD+u/n29oN98JnPuwsQmOGQb5zt3Q==",
459+
"resolved": "7.2.24",
460+
"contentHash": "K7JoBfJaX7jarvEB1EhHcNNF1wQDXt9KLUzlh1HjiZ93CEKWLZut1CdRUap0HCpNAQdwzapMm9uit1Yw75geKA==",
461461
"dependencies": {
462-
"Microsoft.PowerShell.Security": "7.2.19",
462+
"Microsoft.PowerShell.Security": "7.2.24",
463463
"System.ServiceProcess.ServiceController": "6.0.1"
464464
}
465465
},
466466
"Microsoft.PowerShell.Commands.Utility": {
467467
"type": "Transitive",
468-
"resolved": "7.2.19",
469-
"contentHash": "CcunVLhnECHVA8HSp6XsRe+DWOjUp1PGwMY4ga3psUTNnf+z3q7S75hV2SkzI6MVK0UE4J0nR+pa2Zai4B+yTg==",
468+
"resolved": "7.2.24",
469+
"contentHash": "Y+EiB5j2TW+hL0g0N7QxIhUz9kBa3xscwBDsU56N6uBCp1pRZ0SbMU8Aw/1DaVS3nmCo01oBWCyNOVnQ6FGl3g==",
470470
"dependencies": {
471471
"Markdig.Signed": "0.31.0",
472472
"Microsoft.CodeAnalysis.CSharp": "4.0.1",
@@ -475,22 +475,22 @@
475475
"NJsonSchema": "10.5.2",
476476
"Namotion.Reflection": "2.0.10",
477477
"System.Drawing.Common": "6.0.0",
478-
"System.Management.Automation": "7.2.19",
478+
"System.Management.Automation": "7.2.24",
479479
"System.Threading.AccessControl": "6.0.0"
480480
}
481481
},
482482
"Microsoft.PowerShell.ConsoleHost": {
483483
"type": "Transitive",
484-
"resolved": "7.2.19",
485-
"contentHash": "5iSzAEj6Lqib0BLggWj2B7zAaeQ0DdbXNecI0cqUNf6GQxbyBHb3BUWyXn6IVEvwBwX7x9er2NV6gFoFlqoxCw==",
484+
"resolved": "7.2.24",
485+
"contentHash": "QOimsIAQb677auT3q80CdVpgPmIUpD2+4Eencp/S44Qiw8PLDsRLbNkVy3traigjy1PKCe1bfxRm3cLEW+wD2A==",
486486
"dependencies": {
487-
"System.Management.Automation": "7.2.19"
487+
"System.Management.Automation": "7.2.24"
488488
}
489489
},
490490
"Microsoft.PowerShell.CoreCLR.Eventing": {
491491
"type": "Transitive",
492-
"resolved": "7.2.19",
493-
"contentHash": "O/q71SzqJAQ7me4/17HkLO88BIlVwzdjRUlEXUZs4UCNbGgTMvFrTLOhkQ2DRRoZvHIrK3RcU6uDXVQPFoapEQ==",
492+
"resolved": "7.2.24",
493+
"contentHash": "WCjyZsWP0KsidaYSo6hAKc1uh9YpQaPUXWCtBgU73uwRA22ivKA4pzd4+9V2nb7EbfkOdetLDXtmf+5CUUdLfA==",
494494
"dependencies": {
495495
"System.Diagnostics.EventLog": "6.0.0"
496496
}
@@ -510,10 +510,10 @@
510510
},
511511
"Microsoft.PowerShell.Security": {
512512
"type": "Transitive",
513-
"resolved": "7.2.19",
514-
"contentHash": "+XfNK6CrkZ4StwpCah9Qp//s+Ulfa4kmutGsyPQZalSMC51uy3AI/kjbLGJG6ubt/SSMl2+hDudmcA/ZhMu7Cw==",
513+
"resolved": "7.2.24",
514+
"contentHash": "8cGj0R3xwBbJi+cSMCzJTUiL1La0yut1wnZhq3pnRuXCtlzIqv1c6/zfe4bB78SzRGOxq1x15absASKAADR5nA==",
515515
"dependencies": {
516-
"System.Management.Automation": "7.2.19"
516+
"System.Management.Automation": "7.2.24"
517517
}
518518
},
519519
"Microsoft.Win32.Registry": {
@@ -583,18 +583,18 @@
583583
},
584584
"Microsoft.WSMan.Management": {
585585
"type": "Transitive",
586-
"resolved": "7.2.19",
587-
"contentHash": "yXVUesnIUXFoWiTTqIAHKkkRVWKCcGI4LdXJZR9+RBeSORyFjPR9fBsJujCojP5vuAk46sK8s4Ase56XbSfamw==",
586+
"resolved": "7.2.24",
587+
"contentHash": "IsjRjbUx98CLhCG1fgEWWIOOP+FajW/0N3iF77mFlyfSugLGJQIeo3veiieFdCM4wRYaZhc8l77XTR2/WInXaQ==",
588588
"dependencies": {
589-
"Microsoft.WSMan.Runtime": "7.2.19",
590-
"System.Management.Automation": "7.2.19",
589+
"Microsoft.WSMan.Runtime": "7.2.24",
590+
"System.Management.Automation": "7.2.24",
591591
"System.ServiceProcess.ServiceController": "6.0.1"
592592
}
593593
},
594594
"Microsoft.WSMan.Runtime": {
595595
"type": "Transitive",
596-
"resolved": "7.2.19",
597-
"contentHash": "iBx5rUgfnrp8aoZGeouQxLgIkNDmXcynwbbgh37oQY/dWADulcFD9bdkTZoocjhbO7UzMhiDk8b1h2brEK2qcQ=="
596+
"resolved": "7.2.24",
597+
"contentHash": "NBA3si4vF5lN/rGb6d0YMphqF66kuUByJH/uQowaxvrFMrr2AAlp20YU3ACBJMUaXvcqU8ARkxxMYIiQvfvA7A=="
598598
},
599599
"Namotion.Reflection": {
600600
"type": "Transitive",
@@ -825,8 +825,8 @@
825825
},
826826
"System.Formats.Asn1": {
827827
"type": "Transitive",
828-
"resolved": "6.0.0",
829-
"contentHash": "T6fD00dQ3NTbPDy31m4eQUwKW84s03z0N2C8HpOklyeaDgaJPa/TexP4/SkORMSOwc7WhKifnA6Ya33AkzmafA=="
828+
"resolved": "6.0.1",
829+
"contentHash": "glgtKqWJpH9GDw0m9I5xFiF6WDIQqi/eZXU6MkMRPzAWEERGGAJh+qztkrlWSDbokQ1jalj5NcBNIvVoSDpSSA=="
830830
},
831831
"System.IdentityModel.Tokens.Jwt": {
832832
"type": "Transitive",
@@ -839,8 +839,8 @@
839839
},
840840
"System.IO.Packaging": {
841841
"type": "Transitive",
842-
"resolved": "6.0.0",
843-
"contentHash": "C7OkTRIjqIjAKu6ef/fuj8ynCZTPcTYZnvHaq48bniACgXXJogmEoIc56YCDNTc14xhsbLmgpS3KP+evbsUa2g=="
842+
"resolved": "6.0.1",
843+
"contentHash": "uU8v5JFutuypHiG+4E1jJH+pudE2UBJcKMO4O3bwZBTQn0+K3I2YOh21M6TfQy+Jr8fT2zxTxb9bGqnRxnfo4A=="
844844
},
845845
"System.IO.Ports": {
846846
"type": "Transitive",
@@ -860,19 +860,20 @@
860860
},
861861
"System.Management.Automation": {
862862
"type": "Transitive",
863-
"resolved": "7.2.19",
864-
"contentHash": "w0juXx7+dc02j2uIta5knerubHH2YXbShA5C3kBYYeQRsagSOtDQPSaZRyQzcweZ5JLx5icYSDK7ERiWDfFfCA==",
863+
"resolved": "7.2.24",
864+
"contentHash": "8X1cqI1NCz8Oa+20/+34YFBvs5sk/iSG9C4/49/Z6AeIVeecm+3c3VqaQ0tmSyd/DSEOWxEwLUJpOML/l50C7w==",
865865
"dependencies": {
866866
"Microsoft.ApplicationInsights": "2.21.0",
867867
"Microsoft.CSharp": "4.7.0",
868868
"Microsoft.Management.Infrastructure": "2.0.0",
869-
"Microsoft.PowerShell.CoreCLR.Eventing": "7.2.19",
869+
"Microsoft.PowerShell.CoreCLR.Eventing": "7.2.24",
870870
"Microsoft.PowerShell.Native": "7.2.1",
871871
"Microsoft.Win32.Registry.AccessControl": "6.0.0",
872872
"Newtonsoft.Json": "13.0.3",
873873
"System.Configuration.ConfigurationManager": "6.0.1",
874874
"System.Diagnostics.DiagnosticSource": "5.0.1",
875875
"System.DirectoryServices": "6.0.1",
876+
"System.Formats.Asn1": "6.0.1",
876877
"System.Management": "6.0.2",
877878
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
878879
"System.Security.AccessControl": "6.0.1",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using Microsoft.Kiota.Abstractions.Serialization;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace WingetIntune.Extensions;
9+
public static class StringExtensions
10+
{
11+
public static async Task<T?> ParseJson<T>(this string serializedContent, CancellationToken cancellationToken) where T : IParsable
12+
{
13+
var deserializer = new Microsoft.Kiota.Serialization.Json.JsonParseNodeFactory();
14+
using var memoryStream = new System.IO.MemoryStream(Encoding.UTF8.GetBytes(serializedContent));
15+
var jsonParseNode = await deserializer.GetRootParseNodeAsync(deserializer.ValidContentType, memoryStream, cancellationToken);
16+
17+
18+
return jsonParseNode.GetObjectValue<T>(GetFactoryFromType<T>());
19+
}
20+
21+
private static ParsableFactory<T> GetFactoryFromType<T>() where T : IParsable
22+
{
23+
var type = typeof(T);
24+
var factoryMethod = Array.Find(type.GetMethods(), static x => x.IsStatic && "CreateFromDiscriminatorValue".Equals(x.Name, StringComparison.OrdinalIgnoreCase)) ??
25+
throw new InvalidOperationException($"No factory method found for type {type.Name}");
26+
return (ParsableFactory<T>)factoryMethod.CreateDelegate(typeof(ParsableFactory<T>));
27+
}
28+
}

0 commit comments

Comments
 (0)