13
13
// ----------------------------------------------------------------------------------
14
14
15
15
using System ;
16
+ using System . Linq ;
16
17
using System . Management . Automation ;
17
18
using Microsoft . WindowsAzure . Commands . Common ;
18
19
using Microsoft . Azure . Common . Authentication . Models ;
@@ -94,20 +95,20 @@ public override void ExecuteCmdlet()
94
95
switch ( ParameterSetName )
95
96
{
96
97
case SelectSubscriptionByNameParameterSet :
97
- azureSubscription = ProfileClient . SetSubscriptionAsDefault ( SubscriptionName , Account ) ;
98
+ azureSubscription = ProfileClient . SetSubscriptionAsDefault ( SubscriptionName , GetAccount ( ) ) ;
98
99
break ;
99
100
100
101
case SelectSubscriptionByIdParameterSet :
101
- azureSubscription = ProfileClient . SetSubscriptionAsDefault ( SubscriptionIdAsGuid ( ) , Account ) ;
102
+ azureSubscription = ProfileClient . SetSubscriptionAsDefault ( SubscriptionIdAsGuid ( ) , GetAccount ( ) ) ;
102
103
break ;
103
104
104
105
case SelectDefaultSubscriptionByNameParameterSet :
105
- azureSubscription = ProfileClient . SetSubscriptionAsDefault ( SubscriptionName , Account ) ;
106
+ azureSubscription = ProfileClient . SetSubscriptionAsDefault ( SubscriptionName , GetAccount ( ) ) ;
106
107
WriteWarning ( "Current and Default parameters have been deprecated. Select-AzureSubscription will always update the Default Subscription." ) ;
107
108
break ;
108
109
109
110
case SelectDefaultSubscriptionByIdParameterSet :
110
- azureSubscription = ProfileClient . SetSubscriptionAsDefault ( SubscriptionIdAsGuid ( ) , Account ) ;
111
+ azureSubscription = ProfileClient . SetSubscriptionAsDefault ( SubscriptionIdAsGuid ( ) , GetAccount ( ) ) ;
111
112
WriteWarning ( "Current and Default parameters have been deprecated. Select-AzureSubscription will always update the Default Subscription." ) ;
112
113
break ;
113
114
@@ -126,6 +127,31 @@ public override void ExecuteCmdlet()
126
127
}
127
128
}
128
129
130
+ /// <summary>
131
+ /// Returns Account specified in the parameter or current account of the subscription
132
+ /// </summary>
133
+ /// <returns></returns>
134
+ private string GetAccount ( )
135
+ {
136
+ if ( ! string . IsNullOrEmpty ( Account ) )
137
+ {
138
+ return Account ;
139
+ }
140
+
141
+ AzureSubscription subscription = ProfileClient . Profile . Subscriptions . Values
142
+ . FirstOrDefault ( s => s . Name . Equals ( SubscriptionName , StringComparison . InvariantCultureIgnoreCase ) ||
143
+ s . Id . ToString ( ) . Equals ( SubscriptionId , StringComparison . InvariantCultureIgnoreCase ) ) ;
144
+
145
+ if ( subscription != null )
146
+ {
147
+ return subscription . Account ;
148
+ }
149
+ else
150
+ {
151
+ return null ;
152
+ }
153
+ }
154
+
129
155
private Guid SubscriptionIdAsGuid ( )
130
156
{
131
157
Guid subscriptionIdGuid ;
0 commit comments