Skip to content

Commit bbd6632

Browse files
Better way
1 parent 7832679 commit bbd6632

10 files changed

+72
-42
lines changed

experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachineParameters.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,28 @@
22
using Microsoft.Azure.Experiments.Network;
33
using System.Threading.Tasks;
44
using Microsoft.Azure.Management.Compute;
5+
using System.Collections.Generic;
56

67
namespace Microsoft.Azure.Experiments.Compute
78
{
89
public sealed class VirtualMachineParameters
910
: ResourceParameters<VirtualMachine>
1011
{
12+
public override string Name { get; }
13+
1114
public NetworkInterfaceParameters Ni { get; }
1215

16+
public override ResourceGroupParameters ResourceGroup { get; }
17+
18+
public override IEnumerable<Parameters> ResourceDependencies => new[] { Ni };
19+
1320
public VirtualMachineParameters(
1421
string name,
1522
ResourceGroupParameters resourceGroup,
1623
NetworkInterfaceParameters ni)
17-
: base(name, resourceGroup, new[] { ni })
1824
{
25+
Name = name;
26+
ResourceGroup = resourceGroup;
1927
Ni = ni;
2028
}
2129

experiments/Azure.Experiments/Azure.Experiments/Network/NetworkInterfaceParameters.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,35 @@ namespace Microsoft.Azure.Experiments.Network
88
public sealed class NetworkInterfaceParameters
99
: NetworkParameters<NetworkInterface>
1010
{
11+
public override string Name { get; }
12+
13+
public override ResourceGroupParameters ResourceGroup { get; }
14+
1115
public SubnetParameters Subnet { get; }
1216

1317
public NetworkSecurityGroupParameters Nsg { get; }
1418

1519
public PublicIpAddressParameters Pia { get; }
1620

21+
public override IEnumerable<Parameters> ResourceDependencies
22+
=> new Parameters[] { Subnet, Nsg, Pia };
23+
1724
public NetworkInterfaceParameters(
1825
string name,
1926
ResourceGroupParameters resourceGroup,
2027
SubnetParameters subnet,
2128
NetworkSecurityGroupParameters nsg,
22-
PublicIpAddressParameters pia)
23-
: base(name, resourceGroup, new Parameters[] { subnet, nsg, pia })
29+
PublicIpAddressParameters pia)
2430
{
31+
Name = name;
32+
ResourceGroup = resourceGroup;
2533
Subnet = subnet;
2634
Nsg = nsg;
2735
Pia = pia;
2836
}
2937

30-
protected override Task<NetworkInterface> GetAsync(Context context, IGetParameters _)
38+
protected override Task<NetworkInterface> GetAsync(
39+
Context context, IGetParameters _)
3140
=> context
3241
.CreateNetwork()
3342
.NetworkInterfaces

experiments/Azure.Experiments/Azure.Experiments/Network/NetworkParameters.cs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,10 @@
11
using Microsoft.Azure.Management.Network.Models;
2-
using System.Collections.Generic;
32

43
namespace Microsoft.Azure.Experiments.Network
54
{
65
public abstract class NetworkParameters<T> : ResourceParameters<T>
76
where T : Resource
87
{
9-
public NetworkParameters(
10-
string name,
11-
ResourceGroupParameters resourceGroup,
12-
IEnumerable<Parameters> dependencies)
13-
: base(name, resourceGroup, dependencies)
14-
{
15-
}
16-
178
public sealed override string GetLocation(T value)
189
=> value.Location;
1910
}

experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroupParameters.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
11
using System.Threading.Tasks;
22
using Microsoft.Azure.Management.Network.Models;
33
using Microsoft.Azure.Management.Network;
4+
using System.Collections.Generic;
45

56
namespace Microsoft.Azure.Experiments.Network
67
{
78
public sealed class NetworkSecurityGroupParameters
89
: NetworkParameters<NetworkSecurityGroup>
910
{
11+
public override string Name { get; }
12+
13+
public override ResourceGroupParameters ResourceGroup { get; }
14+
15+
public override IEnumerable<Parameters> ResourceDependencies => NoDependencies;
16+
1017
public NetworkSecurityGroupParameters(
11-
string name, ResourceGroupParameters resourceGroup)
12-
: base(name, resourceGroup, NoDependencies)
18+
string name, ResourceGroupParameters resourceGroup)
1319
{
20+
Name = name;
21+
ResourceGroup = resourceGroup;
1422
}
1523

1624
protected override Task<NetworkSecurityGroup> GetAsync(

experiments/Azure.Experiments/Azure.Experiments/Network/PublicIpAddressParameters.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,18 @@ namespace Microsoft.Azure.Experiments.Network
88
public sealed class PublicIpAddressParameters
99
: NetworkParameters<PublicIPAddress>
1010
{
11+
public override string Name { get; }
12+
13+
public override ResourceGroupParameters ResourceGroup { get; }
14+
15+
public override IEnumerable<Parameters> ResourceDependencies
16+
=> NoDependencies;
17+
1118
public PublicIpAddressParameters(
1219
string name, ResourceGroupParameters resourceGroup)
13-
: base(name, resourceGroup, NoDependencies)
1420
{
21+
Name = name;
22+
ResourceGroup = resourceGroup;
1523
}
1624

1725
protected override Task<PublicIPAddress> GetAsync(

experiments/Azure.Experiments/Azure.Experiments/Network/SubnetParameters.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
using System.Threading.Tasks;
22
using Microsoft.Azure.Management.Network.Models;
33
using System.Linq;
4+
using System.Collections.Generic;
45

56
namespace Microsoft.Azure.Experiments.Network
67
{
78
public sealed class SubnetParameters : Parameters<Subnet>
89
{
10+
public override string Name { get; }
11+
912
public VirtualNetworkParameters VirtualNetwork { get; }
1013

14+
public override IEnumerable<Parameters> Dependencies
15+
=> new[] { VirtualNetwork };
16+
1117
public override bool HasCommonLocation => true;
1218

1319
public SubnetParameters(
1420
string name, VirtualNetworkParameters virtualNetwork)
15-
: base(name, new[] { virtualNetwork })
1621
{
22+
Name = name;
1723
VirtualNetwork = virtualNetwork;
1824
}
1925

@@ -25,7 +31,7 @@ protected override async Task<Subnet> GetAsync(
2531
return virtualNetwork?.Subnets.FirstOrDefault(s => s.Name == Name);
2632
}
2733

28-
public override string GetLocation(Subnet value)
34+
public override string GetLocation(Subnet _)
2935
=> null;
3036
}
3137
}

experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkParameters.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
11
using System.Threading.Tasks;
22
using Microsoft.Azure.Management.Network.Models;
33
using Microsoft.Azure.Management.Network;
4+
using System.Collections.Generic;
45

56
namespace Microsoft.Azure.Experiments.Network
67
{
78
public sealed class VirtualNetworkParameters
89
: NetworkParameters<VirtualNetwork>
910
{
11+
public override string Name { get; }
12+
13+
public override ResourceGroupParameters ResourceGroup { get; }
14+
15+
public override IEnumerable<Parameters> ResourceDependencies
16+
=> NoDependencies;
17+
1018
public VirtualNetworkParameters(
1119
string name, ResourceGroupParameters resourceGroup)
12-
: base(name, resourceGroup, NoDependencies)
1320
{
21+
Name = name;
22+
ResourceGroup = resourceGroup;
1423
}
1524

1625
protected override Task<VirtualNetwork> GetAsync(

experiments/Azure.Experiments/Azure.Experiments/Parameters.cs

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,19 @@ public abstract class Parameters
1111
public static IEnumerable<Parameters> NoDependencies
1212
=> Enumerable.Empty<Parameters>();
1313

14-
public string Name { get; }
14+
public abstract string Name { get; }
1515

16-
public IEnumerable<Parameters> Dependencies { get; }
16+
public abstract IEnumerable<Parameters> Dependencies { get; }
1717

1818
public abstract bool HasCommonLocation { get; }
1919

2020
public abstract Task<DependencyLocation> GetDependencyLocation(
2121
Context context, IGetParameters getParameters);
22-
23-
protected Parameters(string name, IEnumerable<Parameters> dependencies)
24-
{
25-
Name = name;
26-
Dependencies = dependencies;
27-
}
2822
}
2923

3024
public abstract class Parameters<T> : Parameters
3125
where T : class
3226
{
33-
protected Parameters(string name, IEnumerable<Parameters> parameters)
34-
: base(name, parameters)
35-
{
36-
}
37-
3827
public Task<T> GetOrNullAsync(
3928
Context context, IGetParameters getParameters)
4029
=> getParameters.GetOrAdd(

experiments/Azure.Experiments/Azure.Experiments/ResourceGroupParameters.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
using Microsoft.Azure.Management.ResourceManager;
22
using Microsoft.Azure.Management.ResourceManager.Models;
33
using System.Threading.Tasks;
4+
using System.Collections.Generic;
45

56
namespace Microsoft.Azure.Experiments
67
{
78
public sealed class ResourceGroupParameters : Parameters<ResourceGroup>
89
{
9-
public ResourceGroupParameters(string name) : base(name, NoDependencies)
10+
public ResourceGroupParameters(string name)
1011
{
12+
Name = name;
1113
}
1214

1315
public override bool HasCommonLocation => false;
1416

17+
public override string Name { get; }
18+
19+
public override IEnumerable<Parameters> Dependencies => NoDependencies;
20+
1521
public override string GetLocation(ResourceGroup value)
1622
=> value.Location;
1723

experiments/Azure.Experiments/Azure.Experiments/ResourceParameters.cs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,13 @@ namespace Microsoft.Azure.Experiments
66
public abstract class ResourceParameters<T> : Parameters<T>
77
where T : class
88
{
9-
public ResourceGroupParameters ResourceGroup { get; }
9+
public abstract ResourceGroupParameters ResourceGroup { get; }
10+
11+
public abstract IEnumerable<Parameters> ResourceDependencies { get; }
1012

1113
public sealed override bool HasCommonLocation => true;
1214

13-
public ResourceParameters(
14-
string name,
15-
ResourceGroupParameters resourceGroup,
16-
IEnumerable<Parameters> dependencies)
17-
: base(name, dependencies.Concat(new[] { resourceGroup }))
18-
{
19-
ResourceGroup = resourceGroup;
20-
}
15+
public sealed override IEnumerable<Parameters> Dependencies
16+
=> ResourceDependencies.Concat(new[] { ResourceGroup });
2117
}
2218
}

0 commit comments

Comments
 (0)