Skip to content

Commit 6d8b26f

Browse files
IClient.GetClient()
1 parent b643730 commit 6d8b26f

File tree

6 files changed

+28
-26
lines changed

6 files changed

+28
-26
lines changed

experiments/Azure.Experiments/Azure.Experiments/Compute/ComputePolicy.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace Microsoft.Azure.Experiments.Compute
77
{
88
public static class ComputePolicy
99
{
10-
public static ResourcePolicy<IComputeManagementClient, ResourceName, Info> Create<Operations, Info>(
10+
public static ResourcePolicy<ResourceName, Info> Create<Operations, Info>(
1111
Func<IComputeManagementClient, Operations> getOperations,
1212
Func<Operations, ResourceName, Task<Info>> getAsync,
1313
Func<Operations, ResourceName, Info, Task<Info>> createOrUpdateAsync)
@@ -17,7 +17,7 @@ public static ResourcePolicy<IComputeManagementClient, ResourceName, Info> Creat
1717
.Transform(getOperations)
1818
.CreateResourcePolicy(i => i.Location, (i, location) => i.Location = location);
1919

20-
public static ResourcePolicy<IComputeManagementClient, ResourceName, VirtualMachine> VirtualMachine
20+
public static ResourcePolicy<ResourceName, VirtualMachine> VirtualMachine
2121
{ get; }
2222
= Create(
2323
client => client.VirtualMachines,
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
namespace Microsoft.Azure.Experiments
1+
using System;
2+
3+
namespace Microsoft.Azure.Experiments
24
{
35
public interface IClient
46
{
57
Context Context { get; }
68

7-
T GetClient<T>();
9+
T GetClient<T>()
10+
where T : class, IDisposable;
811
}
912
}

experiments/Azure.Experiments/Azure.Experiments/Network/NetworkPolicy.cs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace Microsoft.Azure.Experiments.Network
77
{
88
public static class NetworkPolicy
99
{
10-
public static ResourcePolicy<INetworkManagementClient, ResourceName, Info> Create<Operations, Info>(
10+
public static ResourcePolicy<ResourceName, Info> Create<Operations, Info>(
1111
Func<INetworkManagementClient, Operations> getOperations,
1212
Func<Operations, ResourceName, Task<Info>> getAsync,
1313
Func<Operations, ResourceName, Info, Task<Info>> createOrUpdateAsync)
@@ -17,32 +17,28 @@ public static ResourcePolicy<INetworkManagementClient, ResourceName, Info> Creat
1717
.Transform(getOperations)
1818
.CreateResourcePolicy(i => i.Location, (i, location) => i.Location = location);
1919

20-
public static ResourcePolicy<INetworkManagementClient, ResourceName, NetworkInterface> NetworkInterface
21-
{ get; }
20+
public static ResourcePolicy<ResourceName, NetworkInterface> NetworkInterface { get; }
2221
= Create(
2322
client => client.NetworkInterfaces,
2423
(operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name),
2524
(operations, name, info)
2625
=> operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info));
2726

28-
public static ResourcePolicy<INetworkManagementClient, ResourceName, NetworkSecurityGroup> NetworkSecurityGroup
29-
{ get; }
27+
public static ResourcePolicy<ResourceName, NetworkSecurityGroup> NetworkSecurityGroup { get; }
3028
= Create(
3129
client => client.NetworkSecurityGroups,
3230
(operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name),
3331
(operations, name, info)
3432
=> operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info));
3533

36-
public static ResourcePolicy<INetworkManagementClient, ResourceName, PublicIPAddress> PublicIPAddresss
37-
{ get; }
34+
public static ResourcePolicy<ResourceName, PublicIPAddress> PublicIPAddresss { get; }
3835
= Create(
3936
client => client.PublicIPAddresses,
4037
(operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name),
4138
(operations, name, info)
4239
=> operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info));
4340

44-
public static ResourcePolicy<INetworkManagementClient, ResourceName, VirtualNetwork> VirtualNetwork
45-
{ get; }
41+
public static ResourcePolicy<ResourceName, VirtualNetwork> VirtualNetwork { get; }
4642
= Create(
4743
client => client.VirtualNetworks,
4844
(operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name),

experiments/Azure.Experiments/Azure.Experiments/ResourceConfig.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ public interface IResourceConfig
88

99
public static class ResourceConfig
1010
{
11-
public static ResourceConfig<Client, Name, Info> CreateResourceConfig<Client, Name, Info>(
12-
this ResourcePolicy<Client, Name, Info> policy,
11+
public static ResourceConfig<Name, Info> CreateResourceConfig<Name, Info>(
12+
this ResourcePolicy<Name, Info> policy,
1313
Name name,
1414
Info info,
1515
IEnumerable<IResourceConfig> dependencies)
1616
where Info : class
17-
=> new ResourceConfig<Client, Name, Info>(policy, name, info, dependencies);
17+
=> new ResourceConfig<Name, Info>(policy, name, info, dependencies);
1818
}
1919

20-
public sealed class ResourceConfig<Client, TName, TInfo>
20+
public sealed class ResourceConfig<TName, TInfo>
2121
where TInfo : class
2222
{
23-
public ResourcePolicy<Client, TName, TInfo> Policy { get; }
23+
public ResourcePolicy<TName, TInfo> Policy { get; }
2424

2525
public TName Name { get; }
2626

@@ -29,7 +29,7 @@ public sealed class ResourceConfig<Client, TName, TInfo>
2929
public IEnumerable<IResourceConfig> Dependencies { get; }
3030

3131
public ResourceConfig(
32-
ResourcePolicy<Client, TName, TInfo> policy,
32+
ResourcePolicy<TName, TInfo> policy,
3333
TName name,
3434
TInfo info,
3535
IEnumerable<IResourceConfig> dependencies)

experiments/Azure.Experiments/Azure.Experiments/ResourceManager/ResourceManagerPolicy.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ namespace Microsoft.Azure.Experiments.ResourceManager
55
{
66
public static class ResourceManagerPolicy
77
{
8-
public static ResourcePolicy<IResourceManagementClient, string, ResourceGroup> ResourceGroup
9-
{ get; }
8+
public static ResourcePolicy<string, ResourceGroup> ResourceGroup { get; }
109
= OperationsPolicy
1110
.Create<IResourceGroupsOperations, string, ResourceGroup>(
1211
(operations, name) => operations.GetAsync(name),

experiments/Azure.Experiments/Azure.Experiments/ResourcePolicy.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,29 @@ namespace Microsoft.Azure.Experiments
44
{
55
public static class ResourcePolicy
66
{
7-
public static ResourcePolicy<Client, Name, Info> CreateResourcePolicy<Client, Name, Info>(
7+
public static ResourcePolicy<Name, Info> CreateResourcePolicy<Client, Name, Info>(
88
this OperationsPolicy<Client, Name, Info> operationsPolicy,
99
Func<Info, string> getLocation,
1010
Action<Info, string> setLocation)
11+
where Client : class, IDisposable
1112
where Info : class
12-
=> new ResourcePolicy<Client, Name, Info>(operationsPolicy, getLocation, setLocation);
13+
=> new ResourcePolicy<Name, Info>(
14+
operationsPolicy.Transform<IClient>(c => c.GetClient<Client>()),
15+
getLocation,
16+
setLocation);
1317
}
1418

15-
public sealed class ResourcePolicy<Client, Name, Info>
19+
public sealed class ResourcePolicy<Name, Info>
1620
where Info : class
1721
{
18-
public OperationsPolicy<Client, Name, Info> OperationsPolicy { get; }
22+
public OperationsPolicy<IClient, Name, Info> OperationsPolicy { get; }
1923

2024
public Func<Info, string> GetLocation { get; }
2125

2226
public Action<Info, string> SetLocation { get; }
2327

2428
public ResourcePolicy(
25-
OperationsPolicy<Client, Name, Info> operationsPolicy,
29+
OperationsPolicy<IClient, Name, Info> operationsPolicy,
2630
Func<Info, string> getLocation,
2731
Action<Info, string> setLocation)
2832
{

0 commit comments

Comments
 (0)