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,32 @@ 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
+
76
+ return data ;
86
77
}
87
78
}
88
79
@@ -104,51 +95,35 @@ public PSObjectReplicationPolicyRule()
104
95
{
105
96
}
106
97
107
- public PSObjectReplicationPolicyRule ( ObjectReplicationPolicyRule rule )
98
+ public PSObjectReplicationPolicyRule ( Track2Models . ObjectReplicationPolicyRule rule )
108
99
{
109
100
this . RuleId = rule . RuleId ;
110
101
this . SourceContainer = rule . SourceContainer ;
111
102
this . DestinationContainer = rule . DestinationContainer ;
112
103
this . Filters = rule . Filters is null ? null : new PSObjectReplicationPolicyFilter ( rule . Filters ) ;
113
104
}
114
105
115
- public ObjectReplicationPolicyRule ParseObjectReplicationPolicyRule ( )
106
+ public Track2Models . ObjectReplicationPolicyRule ParseObjectReplicationPolicyRule ( )
116
107
{
117
- ObjectReplicationPolicyRule rule = new ObjectReplicationPolicyRule ( ) ;
108
+ Track2Models . ObjectReplicationPolicyRule rule = new Track2Models . ObjectReplicationPolicyRule ( this . SourceContainer , this . DestinationContainer ) ;
118
109
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 ( ) ;
110
+ rule . Filters = this . Filters ? . ParseObjectReplicationPolicyFilter ( ) ;
122
111
return rule ;
123
112
}
124
113
125
- public static PSObjectReplicationPolicyRule [ ] GetPSObjectReplicationPolicyRules ( IList < ObjectReplicationPolicyRule > rules )
114
+ public static PSObjectReplicationPolicyRule [ ] GetPSObjectReplicationPolicyRules ( IList < Track2Models . ObjectReplicationPolicyRule > rules )
126
115
{
127
116
if ( rules == null )
128
117
{
129
118
return null ;
130
119
}
131
120
List < PSObjectReplicationPolicyRule > psrules = new List < PSObjectReplicationPolicyRule > ( ) ;
132
- foreach ( ObjectReplicationPolicyRule rule in rules )
121
+ foreach ( Track2Models . ObjectReplicationPolicyRule rule in rules )
133
122
{
134
123
psrules . Add ( new PSObjectReplicationPolicyRule ( rule ) ) ;
135
124
}
136
125
return psrules . ToArray ( ) ;
137
126
}
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
127
}
153
128
154
129
/// <summary>
@@ -157,39 +132,46 @@ public static List<ObjectReplicationPolicyRule> ParseObjectReplicationPolicyRule
157
132
public class PSObjectReplicationPolicyFilter
158
133
{
159
134
public string [ ] PrefixMatch { get ; set ; }
160
- public DateTime ? MinCreationTime ;
135
+ public DateTimeOffset ? MinCreationTime ;
161
136
162
137
public PSObjectReplicationPolicyFilter ( )
163
138
{
164
139
}
165
140
166
- public PSObjectReplicationPolicyFilter ( ObjectReplicationPolicyFilter filter )
141
+ public PSObjectReplicationPolicyFilter ( Track2Models . ObjectReplicationPolicyFilter filter )
167
142
{
168
143
if ( filter != null )
169
144
{
170
145
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
146
+
147
+ if ( filter . MinCreationTime != null )
176
148
{
177
149
if ( filter . MinCreationTime . ToUpper ( ) [ filter . MinCreationTime . Length - 1 ] != 'Z' )
178
150
{
179
- filter . MinCreationTime = filter . MinCreationTime + "Z" ;
151
+ filter . MinCreationTime += "Z" ;
180
152
}
181
153
this . MinCreationTime = Convert . ToDateTime ( filter . MinCreationTime ) ;
182
154
}
183
155
}
184
156
}
185
- public ObjectReplicationPolicyFilter ParseObjectReplicationPolicyFilter ( )
157
+
158
+
159
+ public Track2Models . ObjectReplicationPolicyFilter ParseObjectReplicationPolicyFilter ( )
186
160
{
187
- return new ObjectReplicationPolicyFilter ( )
161
+ Track2Models . ObjectReplicationPolicyFilter filter = new Track2Models . ObjectReplicationPolicyFilter ( ) ;
162
+
163
+ if ( this . PrefixMatch != null )
164
+ {
165
+ foreach ( string itm in this . PrefixMatch )
166
+ {
167
+ filter . PrefixMatch . Add ( itm ) ;
168
+ }
169
+ }
170
+ if ( this . MinCreationTime != null )
188
171
{
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
- } ;
172
+ filter . MinCreationTime = this . MinCreationTime . Value . ToUniversalTime ( ) . ToString ( "s" ) + "Z" ;
173
+ }
174
+ return filter ;
193
175
}
194
176
}
195
177
}
0 commit comments