Skip to content

Commit 1db2953

Browse files
authored
Migrate to file-scoped namespaces (#1549)
1 parent 079b805 commit 1db2953

7 files changed

Lines changed: 527 additions & 535 deletions

File tree

docs/creating-a-new-service.md

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@ Component Detection uses standard .NET dependency injection for service registra
77
1. **Create your service interface** in `src/Microsoft.ComponentDetection.Contracts/IMyNewService.cs`
88

99
```c#
10-
namespace Microsoft.ComponentDetection.Contracts
10+
namespace Microsoft.ComponentDetection.Contracts;
11+
12+
public interface IMyNewService
1113
{
12-
public interface IMyNewService
13-
{
14-
// Define your service methods
15-
string DoSomething();
16-
}
14+
// Define your service methods
15+
string DoSomething();
1716
}
1817
```
1918

@@ -22,20 +21,19 @@ namespace Microsoft.ComponentDetection.Contracts
2221
```c#
2322
using Microsoft.ComponentDetection.Contracts;
2423

25-
namespace Microsoft.ComponentDetection.Common
24+
namespace Microsoft.ComponentDetection.Common;
25+
26+
public class MyNewService : IMyNewService
2627
{
27-
public class MyNewService : IMyNewService
28+
// Inject any dependencies your service needs
29+
public MyNewService(ILogger<MyNewService> logger)
30+
{
31+
// Constructor injection
32+
}
33+
34+
public string DoSomething()
2835
{
29-
// Inject any dependencies your service needs
30-
public MyNewService(ILogger<MyNewService> logger)
31-
{
32-
// Constructor injection
33-
}
34-
35-
public string DoSomething()
36-
{
37-
// Implementation
38-
}
36+
// Implementation
3937
}
4038
}
4139
```
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
namespace Microsoft.ComponentDetection.Detectors.Uv
1+
namespace Microsoft.ComponentDetection.Detectors.Uv;
2+
3+
public class UvDependency
24
{
3-
public class UvDependency
4-
{
5-
public required string Name { get; init; }
5+
public required string Name { get; init; }
66

7-
public string? Specifier { get; set; }
8-
}
7+
public string? Specifier { get; set; }
98
}

src/Microsoft.ComponentDetection.Detectors/uv/UvLock.cs

Lines changed: 101 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,142 +1,141 @@
1-
namespace Microsoft.ComponentDetection.Detectors.Uv
1+
namespace Microsoft.ComponentDetection.Detectors.Uv;
2+
3+
using System;
4+
using System.Collections.Generic;
5+
using System.IO;
6+
using Tomlyn;
7+
using Tomlyn.Model;
8+
9+
public class UvLock
210
{
3-
using System;
4-
using System.Collections.Generic;
5-
using System.IO;
6-
using Tomlyn;
7-
using Tomlyn.Model;
11+
// a list of packages with their dependencies
12+
public List<UvPackage> Packages { get; set; } = [];
813

9-
public class UvLock
14+
// static method to parse the TOML stream into a UvLock model
15+
public static UvLock Parse(Stream tomlStream)
1016
{
11-
// a list of packages with their dependencies
12-
public List<UvPackage> Packages { get; set; } = [];
17+
using var reader = new StreamReader(tomlStream);
18+
var tomlContent = reader.ReadToEnd();
19+
var model = Toml.ToModel(tomlContent);
20+
return new UvLock
21+
{
22+
Packages = ParsePackagesFromModel(model),
23+
};
24+
}
1325

14-
// static method to parse the TOML stream into a UvLock model
15-
public static UvLock Parse(Stream tomlStream)
26+
internal static List<UvPackage> ParsePackagesFromModel(object? model)
27+
{
28+
if (model is not TomlTable table)
1629
{
17-
using var reader = new StreamReader(tomlStream);
18-
var tomlContent = reader.ReadToEnd();
19-
var model = Toml.ToModel(tomlContent);
20-
return new UvLock
21-
{
22-
Packages = ParsePackagesFromModel(model),
23-
};
30+
throw new InvalidOperationException("TOML root is not a table");
2431
}
2532

26-
internal static List<UvPackage> ParsePackagesFromModel(object? model)
33+
if (!table.TryGetValue("package", out var packagesObj) || packagesObj is not TomlTableArray packages)
2734
{
28-
if (model is not TomlTable table)
29-
{
30-
throw new InvalidOperationException("TOML root is not a table");
31-
}
35+
return [];
36+
}
3237

33-
if (!table.TryGetValue("package", out var packagesObj) || packagesObj is not TomlTableArray packages)
38+
var result = new List<UvPackage>();
39+
foreach (var pkg in packages)
40+
{
41+
var parsed = ParsePackage(pkg);
42+
if (parsed is not null)
3443
{
35-
return [];
44+
result.Add(parsed);
3645
}
46+
}
3747

38-
var result = new List<UvPackage>();
39-
foreach (var pkg in packages)
40-
{
41-
var parsed = ParsePackage(pkg);
42-
if (parsed is not null)
43-
{
44-
result.Add(parsed);
45-
}
46-
}
48+
return result;
49+
}
4750

48-
return result;
51+
internal static UvPackage? ParsePackage(object? pkg)
52+
{
53+
if (pkg is not TomlTable pkgTable)
54+
{
55+
return null;
4956
}
5057

51-
internal static UvPackage? ParsePackage(object? pkg)
58+
if (pkgTable.TryGetValue("name", out var nameObj) && nameObj is string name &&
59+
pkgTable.TryGetValue("version", out var versionObj) && versionObj is string version)
5260
{
53-
if (pkg is not TomlTable pkgTable)
61+
var uvPackage = new UvPackage
5462
{
55-
return null;
56-
}
63+
Name = name,
64+
Version = version,
65+
Dependencies = [],
66+
MetadataRequiresDist = [],
67+
MetadataRequiresDev = [],
68+
};
5769

58-
if (pkgTable.TryGetValue("name", out var nameObj) && nameObj is string name &&
59-
pkgTable.TryGetValue("version", out var versionObj) && versionObj is string version)
70+
if (pkgTable.TryGetValue("dependencies", out var depsObj) && depsObj is TomlArray depsArray)
6071
{
61-
var uvPackage = new UvPackage
62-
{
63-
Name = name,
64-
Version = version,
65-
Dependencies = [],
66-
MetadataRequiresDist = [],
67-
MetadataRequiresDev = [],
68-
};
69-
70-
if (pkgTable.TryGetValue("dependencies", out var depsObj) && depsObj is TomlArray depsArray)
71-
{
72-
uvPackage.Dependencies = ParseDependenciesArray(depsArray);
73-
}
74-
75-
if (pkgTable.TryGetValue("metadata", out var metadataObj) && metadataObj is TomlTable metadataTable)
76-
{
77-
ParseMetadata(metadataTable, uvPackage);
78-
}
79-
80-
// Parse source
81-
if (pkgTable.TryGetValue("source", out var sourceObj) && sourceObj is TomlTable sourceTable)
82-
{
83-
var source = new UvSource
84-
{
85-
Registry = sourceTable.TryGetValue("registry", out var regObj) && regObj is string reg ? reg : null,
86-
Virtual = sourceTable.TryGetValue("virtual", out var virtObj) && virtObj is string virt ? virt : null,
87-
};
88-
uvPackage.Source = source;
89-
}
90-
91-
return uvPackage;
72+
uvPackage.Dependencies = ParseDependenciesArray(depsArray);
9273
}
9374

94-
return null;
95-
}
96-
97-
internal static List<UvDependency> ParseDependenciesArray(TomlArray? depsArray)
98-
{
99-
var deps = new List<UvDependency>();
100-
if (depsArray is null)
75+
if (pkgTable.TryGetValue("metadata", out var metadataObj) && metadataObj is TomlTable metadataTable)
10176
{
102-
return deps;
77+
ParseMetadata(metadataTable, uvPackage);
10378
}
10479

105-
foreach (var dep in depsArray)
80+
// Parse source
81+
if (pkgTable.TryGetValue("source", out var sourceObj) && sourceObj is TomlTable sourceTable)
10682
{
107-
if (dep is TomlTable depTable &&
108-
depTable.TryGetValue("name", out var depNameObj) && depNameObj is string depName)
83+
var source = new UvSource
10984
{
110-
var depSpec = depTable.TryGetValue("specifier", out var specObj) && specObj is string s ? s : null;
111-
deps.Add(new UvDependency
112-
{
113-
Name = depName,
114-
Specifier = depSpec,
115-
});
116-
}
85+
Registry = sourceTable.TryGetValue("registry", out var regObj) && regObj is string reg ? reg : null,
86+
Virtual = sourceTable.TryGetValue("virtual", out var virtObj) && virtObj is string virt ? virt : null,
87+
};
88+
uvPackage.Source = source;
11789
}
11890

91+
return uvPackage;
92+
}
93+
94+
return null;
95+
}
96+
97+
internal static List<UvDependency> ParseDependenciesArray(TomlArray? depsArray)
98+
{
99+
var deps = new List<UvDependency>();
100+
if (depsArray is null)
101+
{
119102
return deps;
120103
}
121104

122-
internal static void ParseMetadata(TomlTable? metadataTable, UvPackage uvPackage)
105+
foreach (var dep in depsArray)
123106
{
124-
if (metadataTable is null)
107+
if (dep is TomlTable depTable &&
108+
depTable.TryGetValue("name", out var depNameObj) && depNameObj is string depName)
125109
{
126-
return;
110+
var depSpec = depTable.TryGetValue("specifier", out var specObj) && specObj is string s ? s : null;
111+
deps.Add(new UvDependency
112+
{
113+
Name = depName,
114+
Specifier = depSpec,
115+
});
127116
}
117+
}
128118

129-
if (metadataTable.TryGetValue("requires-dist", out var requiresDistObj) && requiresDistObj is TomlArray requiresDistArr)
130-
{
131-
uvPackage.MetadataRequiresDist = ParseDependenciesArray(requiresDistArr);
132-
}
119+
return deps;
120+
}
133121

134-
if (metadataTable.TryGetValue("requires-dev", out var requiresDevObj) && requiresDevObj is TomlTable requiresDevTable)
122+
internal static void ParseMetadata(TomlTable? metadataTable, UvPackage uvPackage)
123+
{
124+
if (metadataTable is null)
125+
{
126+
return;
127+
}
128+
129+
if (metadataTable.TryGetValue("requires-dist", out var requiresDistObj) && requiresDistObj is TomlArray requiresDistArr)
130+
{
131+
uvPackage.MetadataRequiresDist = ParseDependenciesArray(requiresDistArr);
132+
}
133+
134+
if (metadataTable.TryGetValue("requires-dev", out var requiresDevObj) && requiresDevObj is TomlTable requiresDevTable)
135+
{
136+
if (requiresDevTable.TryGetValue("dev", out var devObj) && devObj is TomlArray devArr)
135137
{
136-
if (requiresDevTable.TryGetValue("dev", out var devObj) && devObj is TomlArray devArr)
137-
{
138-
uvPackage.MetadataRequiresDev = ParseDependenciesArray(devArr);
139-
}
138+
uvPackage.MetadataRequiresDev = ParseDependenciesArray(devArr);
140139
}
141140
}
142141
}

0 commit comments

Comments
 (0)