12
12
// limitations under the License.
13
13
// ----------------------------------------------------------------------------------
14
14
15
- using Microsoft . Azure . Management . Storage . Models ;
16
15
using Microsoft . WindowsAzure . Commands . Common . Attributes ;
17
16
using System ;
18
17
using System . Collections . Generic ;
18
+ using System . Runtime . Serialization ;
19
+ using Track2 = Azure . ResourceManager . Storage ;
20
+ using Track2Models = Azure . ResourceManager . Storage . Models ;
19
21
20
22
namespace Microsoft . Azure . Commands . Management . Storage . Models
21
23
{
@@ -35,7 +37,7 @@ public class PSObjectReplicationPolicy
35
37
[ Ps1Xml ( Label = "PolicyId" , Target = ViewControl . Table , Position = 2 ) ]
36
38
public string PolicyId { get ; set ; }
37
39
[ Ps1Xml ( Label = "EnabledTime" , Target = ViewControl . Table , Position = 3 ) ]
38
- public DateTime ? EnabledTime { get ; }
40
+ public DateTimeOffset ? EnabledTime { get ; }
39
41
[ Ps1Xml ( Label = "SourceAccount" , Target = ViewControl . Table , Position = 4 ) ]
40
42
public string SourceAccount { get ; set ; }
41
43
[ Ps1Xml ( Label = "DestinationAccount" , Target = ViewControl . Table , Position = 5 ) ]
@@ -46,43 +48,31 @@ public class PSObjectReplicationPolicy
46
48
public PSObjectReplicationPolicy ( )
47
49
{ }
48
50
49
- public PSObjectReplicationPolicy ( ObjectReplicationPolicy policy , string ResourceGroupName , string StorageAccountName )
51
+ public PSObjectReplicationPolicy ( Track2 . ObjectReplicationPolicyResource policy , string ResourceGroupName , string StorageAccountName )
50
52
{
51
53
this . ResourceGroupName = ResourceGroupName ;
52
54
this . StorageAccountName = StorageAccountName ;
53
55
this . ResourceId = policy . Id ;
54
- this . Name = policy . Name ;
55
- this . Type = policy . Type ;
56
- this . PolicyId = policy . PolicyId ;
57
- this . EnabledTime = policy . EnabledTime ;
58
- this . SourceAccount = policy . SourceAccount ;
59
- this . DestinationAccount = policy . DestinationAccount ;
60
- this . Rules = PSObjectReplicationPolicyRule . GetPSObjectReplicationPolicyRules ( policy . Rules ) ;
56
+ this . Name = policy . Data . Name ;
57
+ this . Type = policy . Data . ResourceType ;
58
+ this . PolicyId = policy . Data . PolicyId ;
59
+ this . EnabledTime = policy . Data . EnabledOn ;
60
+ this . SourceAccount = policy . Data . SourceAccount ;
61
+ this . DestinationAccount = policy . Data . DestinationAccount ;
62
+ this . Rules = PSObjectReplicationPolicyRule . GetPSObjectReplicationPolicyRules ( policy . Data . Rules ) ;
61
63
}
62
64
63
- public ObjectReplicationPolicy ParseObjectReplicationPolicy ( )
65
+ public Track2 . ObjectReplicationPolicyData ParseObjectReplicationPolicy ( )
64
66
{
65
- ObjectReplicationPolicy policy = new ObjectReplicationPolicy ( )
66
- {
67
- SourceAccount = this . SourceAccount ,
68
- DestinationAccount = this . DestinationAccount ,
69
- Rules = PSObjectReplicationPolicyRule . ParseObjectReplicationPolicyRules ( this . Rules )
70
- } ;
71
- return policy ;
72
- }
67
+ Track2 . ObjectReplicationPolicyData data = new Track2 . ObjectReplicationPolicyData ( ) ;
68
+ data . SourceAccount = this . SourceAccount ;
69
+ data . DestinationAccount = this . DestinationAccount ;
73
70
74
- public static PSObjectReplicationPolicy [ ] GetPSObjectReplicationPolicies ( IEnumerable < ObjectReplicationPolicy > policies , string ResourceGroupName , string StorageAccountName )
75
- {
76
- if ( policies == null )
77
- {
78
- return null ;
79
- }
80
- List < PSObjectReplicationPolicy > pspolicies = new List < PSObjectReplicationPolicy > ( ) ;
81
- foreach ( ObjectReplicationPolicy policy in policies )
71
+ foreach ( PSObjectReplicationPolicyRule rule in this . Rules )
82
72
{
83
- pspolicies . Add ( new PSObjectReplicationPolicy ( policy , ResourceGroupName , StorageAccountName ) ) ;
73
+ data . Rules . Add ( rule . ParseObjectReplicationPolicyRule ( ) ) ;
84
74
}
85
- return pspolicies . ToArray ( ) ;
75
+ return data ;
86
76
}
87
77
}
88
78
@@ -104,51 +94,35 @@ public PSObjectReplicationPolicyRule()
104
94
{
105
95
}
106
96
107
- public PSObjectReplicationPolicyRule ( ObjectReplicationPolicyRule rule )
97
+ public PSObjectReplicationPolicyRule ( Track2Models . ObjectReplicationPolicyRule rule )
108
98
{
109
99
this . RuleId = rule . RuleId ;
110
100
this . SourceContainer = rule . SourceContainer ;
111
101
this . DestinationContainer = rule . DestinationContainer ;
112
102
this . Filters = rule . Filters is null ? null : new PSObjectReplicationPolicyFilter ( rule . Filters ) ;
113
103
}
114
104
115
- public ObjectReplicationPolicyRule ParseObjectReplicationPolicyRule ( )
105
+ public Track2Models . ObjectReplicationPolicyRule ParseObjectReplicationPolicyRule ( )
116
106
{
117
- ObjectReplicationPolicyRule rule = new ObjectReplicationPolicyRule ( ) ;
107
+ Track2Models . ObjectReplicationPolicyRule rule = new Track2Models . ObjectReplicationPolicyRule ( this . SourceContainer , this . DestinationContainer ) ;
118
108
rule . RuleId = this . RuleId ;
119
- rule . SourceContainer = this . SourceContainer ;
120
- rule . DestinationContainer = this . DestinationContainer ;
121
- rule . Filters = this . Filters is null ? null : this . Filters . ParseObjectReplicationPolicyFilter ( ) ;
109
+ rule . Filters = this . Filters ? . ParseObjectReplicationPolicyFilter ( ) ;
122
110
return rule ;
123
111
}
124
112
125
- public static PSObjectReplicationPolicyRule [ ] GetPSObjectReplicationPolicyRules ( IList < ObjectReplicationPolicyRule > rules )
113
+ public static PSObjectReplicationPolicyRule [ ] GetPSObjectReplicationPolicyRules ( IList < Track2Models . ObjectReplicationPolicyRule > rules )
126
114
{
127
115
if ( rules == null )
128
116
{
129
117
return null ;
130
118
}
131
119
List < PSObjectReplicationPolicyRule > psrules = new List < PSObjectReplicationPolicyRule > ( ) ;
132
- foreach ( ObjectReplicationPolicyRule rule in rules )
120
+ foreach ( Track2Models . ObjectReplicationPolicyRule rule in rules )
133
121
{
134
122
psrules . Add ( new PSObjectReplicationPolicyRule ( rule ) ) ;
135
123
}
136
124
return psrules . ToArray ( ) ;
137
125
}
138
-
139
- public static List < ObjectReplicationPolicyRule > ParseObjectReplicationPolicyRules ( PSObjectReplicationPolicyRule [ ] psrules )
140
- {
141
- if ( psrules == null )
142
- {
143
- return null ;
144
- }
145
- List < ObjectReplicationPolicyRule > rules = new List < ObjectReplicationPolicyRule > ( ) ;
146
- foreach ( PSObjectReplicationPolicyRule psrule in psrules )
147
- {
148
- rules . Add ( psrule . ParseObjectReplicationPolicyRule ( ) ) ;
149
- }
150
- return rules ;
151
- }
152
126
}
153
127
154
128
/// <summary>
@@ -157,39 +131,44 @@ public static List<ObjectReplicationPolicyRule> ParseObjectReplicationPolicyRule
157
131
public class PSObjectReplicationPolicyFilter
158
132
{
159
133
public string [ ] PrefixMatch { get ; set ; }
160
- public DateTime ? MinCreationTime ;
134
+ public DateTimeOffset ? MinCreationTime ;
161
135
162
136
public PSObjectReplicationPolicyFilter ( )
163
137
{
164
138
}
165
139
166
- public PSObjectReplicationPolicyFilter ( ObjectReplicationPolicyFilter filter )
140
+ public PSObjectReplicationPolicyFilter ( Track2Models . ObjectReplicationPolicyFilter filter )
167
141
{
168
142
if ( filter != null )
169
143
{
170
144
this . PrefixMatch = filter . PrefixMatch is null ? null : new List < string > ( filter . PrefixMatch ) . ToArray ( ) ;
171
- if ( string . IsNullOrEmpty ( filter . MinCreationTime ) )
172
- {
173
- this . MinCreationTime = null ;
174
- }
175
- else
145
+ if ( filter . MinCreationTime != null )
176
146
{
177
147
if ( filter . MinCreationTime . ToUpper ( ) [ filter . MinCreationTime . Length - 1 ] != 'Z' )
178
148
{
179
- filter . MinCreationTime = filter . MinCreationTime + "Z" ;
149
+ filter . MinCreationTime += "Z" ;
180
150
}
181
151
this . MinCreationTime = Convert . ToDateTime ( filter . MinCreationTime ) ;
182
152
}
183
153
}
184
154
}
185
- public ObjectReplicationPolicyFilter ParseObjectReplicationPolicyFilter ( )
155
+
156
+ public Track2Models . ObjectReplicationPolicyFilter ParseObjectReplicationPolicyFilter ( )
186
157
{
187
- return new ObjectReplicationPolicyFilter ( )
158
+ Track2Models . ObjectReplicationPolicyFilter filter = new Track2Models . ObjectReplicationPolicyFilter ( ) ;
159
+
160
+ if ( this . PrefixMatch != null )
188
161
{
189
- PrefixMatch = this . PrefixMatch is null ? null : new List < string > ( this . PrefixMatch ) ,
190
- //must be in format: 2020-02-19T16:05:00Z
191
- MinCreationTime = this . MinCreationTime is null ? null : this . MinCreationTime . Value . ToUniversalTime ( ) . ToString ( "s" ) + "Z"
192
- } ;
162
+ foreach ( string itm in this . PrefixMatch )
163
+ {
164
+ filter . PrefixMatch . Add ( itm ) ;
165
+ }
166
+ }
167
+ if ( this . MinCreationTime != null )
168
+ {
169
+ filter . MinCreationTime = this . MinCreationTime . Value . ToUniversalTime ( ) . ToString ( "s" ) + "Z" ;
170
+ }
171
+ return filter ;
193
172
}
194
173
}
195
174
}
0 commit comments