1212// limitations under the License.
1313// ----------------------------------------------------------------------------------
1414
15- using Microsoft . Azure . Management . Storage . Models ;
1615using Microsoft . WindowsAzure . Commands . Common . Attributes ;
1716using System ;
1817using System . Collections . Generic ;
18+ using System . Runtime . Serialization ;
19+ using Track2 = Azure . ResourceManager . Storage ;
20+ using Track2Models = Azure . ResourceManager . Storage . Models ;
1921
2022namespace Microsoft . Azure . Commands . Management . Storage . Models
2123{
@@ -35,7 +37,7 @@ public class PSObjectReplicationPolicy
3537 [ Ps1Xml ( Label = "PolicyId" , Target = ViewControl . Table , Position = 2 ) ]
3638 public string PolicyId { get ; set ; }
3739 [ Ps1Xml ( Label = "EnabledTime" , Target = ViewControl . Table , Position = 3 ) ]
38- public DateTime ? EnabledTime { get ; }
40+ public DateTimeOffset ? EnabledTime { get ; }
3941 [ Ps1Xml ( Label = "SourceAccount" , Target = ViewControl . Table , Position = 4 ) ]
4042 public string SourceAccount { get ; set ; }
4143 [ Ps1Xml ( Label = "DestinationAccount" , Target = ViewControl . Table , Position = 5 ) ]
@@ -46,43 +48,32 @@ public class PSObjectReplicationPolicy
4648 public PSObjectReplicationPolicy ( )
4749 { }
4850
49- public PSObjectReplicationPolicy ( ObjectReplicationPolicy policy , string ResourceGroupName , string StorageAccountName )
51+ public PSObjectReplicationPolicy ( Track2 . ObjectReplicationPolicyResource policy , string ResourceGroupName , string StorageAccountName )
5052 {
5153 this . ResourceGroupName = ResourceGroupName ;
5254 this . StorageAccountName = StorageAccountName ;
5355 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 ) ;
6163 }
6264
63- public ObjectReplicationPolicy ParseObjectReplicationPolicy ( )
65+ public Track2 . ObjectReplicationPolicyData ParseObjectReplicationPolicy ( )
6466 {
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 ;
7370
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 )
8272 {
83- pspolicies . Add ( new PSObjectReplicationPolicy ( policy , ResourceGroupName , StorageAccountName ) ) ;
73+ data . Rules . Add ( rule . ParseObjectReplicationPolicyRule ( ) ) ;
8474 }
85- return pspolicies . ToArray ( ) ;
75+
76+ return data ;
8677 }
8778 }
8879
@@ -104,51 +95,35 @@ public PSObjectReplicationPolicyRule()
10495 {
10596 }
10697
107- public PSObjectReplicationPolicyRule ( ObjectReplicationPolicyRule rule )
98+ public PSObjectReplicationPolicyRule ( Track2Models . ObjectReplicationPolicyRule rule )
10899 {
109100 this . RuleId = rule . RuleId ;
110101 this . SourceContainer = rule . SourceContainer ;
111102 this . DestinationContainer = rule . DestinationContainer ;
112103 this . Filters = rule . Filters is null ? null : new PSObjectReplicationPolicyFilter ( rule . Filters ) ;
113104 }
114105
115- public ObjectReplicationPolicyRule ParseObjectReplicationPolicyRule ( )
106+ public Track2Models . ObjectReplicationPolicyRule ParseObjectReplicationPolicyRule ( )
116107 {
117- ObjectReplicationPolicyRule rule = new ObjectReplicationPolicyRule ( ) ;
108+ Track2Models . ObjectReplicationPolicyRule rule = new Track2Models . ObjectReplicationPolicyRule ( this . SourceContainer , this . DestinationContainer ) ;
118109 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 ( ) ;
122111 return rule ;
123112 }
124113
125- public static PSObjectReplicationPolicyRule [ ] GetPSObjectReplicationPolicyRules ( IList < ObjectReplicationPolicyRule > rules )
114+ public static PSObjectReplicationPolicyRule [ ] GetPSObjectReplicationPolicyRules ( IList < Track2Models . ObjectReplicationPolicyRule > rules )
126115 {
127116 if ( rules == null )
128117 {
129118 return null ;
130119 }
131120 List < PSObjectReplicationPolicyRule > psrules = new List < PSObjectReplicationPolicyRule > ( ) ;
132- foreach ( ObjectReplicationPolicyRule rule in rules )
121+ foreach ( Track2Models . ObjectReplicationPolicyRule rule in rules )
133122 {
134123 psrules . Add ( new PSObjectReplicationPolicyRule ( rule ) ) ;
135124 }
136125 return psrules . ToArray ( ) ;
137126 }
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- }
152127 }
153128
154129 /// <summary>
@@ -157,39 +132,46 @@ public static List<ObjectReplicationPolicyRule> ParseObjectReplicationPolicyRule
157132 public class PSObjectReplicationPolicyFilter
158133 {
159134 public string [ ] PrefixMatch { get ; set ; }
160- public DateTime ? MinCreationTime ;
135+ public DateTimeOffset ? MinCreationTime ;
161136
162137 public PSObjectReplicationPolicyFilter ( )
163138 {
164139 }
165140
166- public PSObjectReplicationPolicyFilter ( ObjectReplicationPolicyFilter filter )
141+ public PSObjectReplicationPolicyFilter ( Track2Models . ObjectReplicationPolicyFilter filter )
167142 {
168143 if ( filter != null )
169144 {
170145 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 )
176148 {
177149 if ( filter . MinCreationTime . ToUpper ( ) [ filter . MinCreationTime . Length - 1 ] != 'Z' )
178150 {
179- filter . MinCreationTime = filter . MinCreationTime + "Z" ;
151+ filter . MinCreationTime += "Z" ;
180152 }
181153 this . MinCreationTime = Convert . ToDateTime ( filter . MinCreationTime ) ;
182154 }
183155 }
184156 }
185- public ObjectReplicationPolicyFilter ParseObjectReplicationPolicyFilter ( )
157+
158+
159+ public Track2Models . ObjectReplicationPolicyFilter ParseObjectReplicationPolicyFilter ( )
186160 {
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 )
188171 {
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 ;
193175 }
194176 }
195177}
0 commit comments