@@ -25,42 +25,50 @@ public class SaveResource : Cmdlet
2525
2626 protected override void ProcessRecord ( )
2727 {
28- IEnumerable < RmaObject > creatingObjects = this . Resources . Where ( t => t . InternalObject . ModificationType == OperationType . Create ) . ToList ( ) ;
29-
30- if ( this . Locale != null || this . Resources . Any ( t => t . InternalObject . Locale != null ) )
28+ try
3129 {
32- CultureInfo locale = null ;
30+ IEnumerable < RmaObject > creatingObjects = this . Resources . Where ( t => t . InternalObject . ModificationType == OperationType . Create ) . ToList ( ) ;
3331
34- if ( this . Locale != null )
32+ if ( this . Locale != null || this . Resources . Any ( t => t . InternalObject . Locale != null ) )
3533 {
36- locale = new CultureInfo ( this . Locale ) ;
37- }
34+ CultureInfo locale = null ;
3835
39- if ( this . Resources . Length > 1 )
40- {
41- this . WriteWarning ( "Composite save disabled as locale parameter has been specified or at least one resource has been localized" ) ;
42- }
36+ if ( this . Locale != null )
37+ {
38+ locale = new CultureInfo ( this . Locale ) ;
39+ }
4340
44- foreach ( ResourceObject r in this . Resources . Select ( t => t . GetResourceWithAppliedChanges ( ) ) )
45- {
46- RmcWrapper . Client . SaveResource ( r , locale ) ;
41+ if ( this . Resources . Length > 1 )
42+ {
43+ this . WriteWarning ( "Composite save disabled as locale parameter has been specified or at least one resource has been localized" ) ;
44+ }
45+
46+ foreach ( ResourceObject r in this . Resources . Select ( t => t . GetResourceWithAppliedChanges ( ) ) )
47+ {
48+ RmcWrapper . Client . SaveResource ( r , locale ) ;
49+ }
4750 }
48- }
49- else
50- {
51- if ( this . Parallel . IsPresent )
51+ else
5252 {
53- RmcWrapper . Client . SaveResourcesParallel ( this . Resources . Select ( t => t . GetResourceWithAppliedChanges ( ) ) , - 1 ) ;
53+ if ( this . Parallel . IsPresent )
54+ {
55+ RmcWrapper . Client . SaveResourcesParallel ( this . Resources . Select ( t => t . GetResourceWithAppliedChanges ( ) ) , - 1 ) ;
56+ }
57+ else
58+ {
59+ RmcWrapper . Client . SaveResources ( this . Resources . Select ( t => t . GetResourceWithAppliedChanges ( ) ) ) ;
60+ }
5461 }
55- else
62+
63+ foreach ( RmaObject resource in creatingObjects )
5664 {
57- RmcWrapper . Client . SaveResources ( this . Resources . Select ( t => t . GetResourceWithAppliedChanges ( ) ) ) ;
65+ resource . ReloadProperties ( ) ;
5866 }
5967 }
60-
61- foreach ( RmaObject resource in creatingObjects )
68+ catch ( AuthorizationRequiredException ex )
6269 {
63- resource . ReloadProperties ( ) ;
70+ this . WriteVerbose ( "Authorization required: " + ex . ResourceReference ) ;
71+ this . WriteObject ( ex . ResourceReference ) ;
6472 }
6573 }
6674 }
0 commit comments