24
24
namespace Microsoft . Azure . Commands . RecoveryServices . Backup . Helpers
25
25
{
26
26
public partial class PolicyHelpers
27
- {
27
+ {
28
28
public static void ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy (
29
29
AzureRmRecoveryServicesLongTermRetentionPolicy ltrPolicy ,
30
30
AzureRmRecoveryServicesSimpleSchedulePolicy schPolicy )
31
31
{
32
32
// for daily schedule, daily retention policy is required
33
- if ( schPolicy . ScheduleRunFrequency == ScheduleRunType . Daily &&
33
+ if ( schPolicy . ScheduleRunFrequency == ScheduleRunType . Daily &&
34
34
ltrPolicy . DailySchedule == null )
35
35
{
36
36
throw new ArgumentException ( Resources . DailyRetentionScheduleNullException ) ;
@@ -45,24 +45,27 @@ public static void ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy(
45
45
}
46
46
47
47
// validate daily retention schedule with schPolicy
48
- if ( ltrPolicy . DailySchedule != null )
48
+ if ( ltrPolicy . DailySchedule != null )
49
49
{
50
- ValidateRetentionAndBackupTimes ( schPolicy . ScheduleRunTimes , ltrPolicy . DailySchedule . RetentionTimes ) ;
50
+ ValidateRetentionAndBackupTimes ( schPolicy . ScheduleRunTimes , ltrPolicy . DailySchedule . RetentionTimes ) ;
51
51
}
52
52
53
53
// validate weekly retention schedule with schPolicy
54
54
if ( ltrPolicy . WeeklySchedule != null )
55
55
{
56
56
ValidateRetentionAndBackupTimes ( schPolicy . ScheduleRunTimes , ltrPolicy . WeeklySchedule . RetentionTimes ) ;
57
57
58
- // count of daysOfWeek should match for weekly schedule
59
- if ( ltrPolicy . WeeklySchedule . DaysOfTheWeek . Count != schPolicy . ScheduleRunDays . Count )
58
+ if ( schPolicy . ScheduleRunFrequency == ScheduleRunType . Weekly )
60
59
{
61
- throw new ArgumentException ( Resources . DaysofTheWeekInWeeklyRetentionException ) ;
60
+ // count of daysOfWeek should match for weekly schedule
61
+ if ( ltrPolicy . WeeklySchedule . DaysOfTheWeek . Count != schPolicy . ScheduleRunDays . Count )
62
+ {
63
+ throw new ArgumentException ( Resources . DaysofTheWeekInWeeklyRetentionException ) ;
64
+ }
65
+
66
+ // validate days of week
67
+ ValidateRetentionAndScheduleDaysOfWeek ( schPolicy . ScheduleRunDays , ltrPolicy . WeeklySchedule . DaysOfTheWeek ) ;
62
68
}
63
-
64
- // validate days of week
65
- ValidateRetentionAndScheduleDaysOfWeek ( schPolicy . ScheduleRunDays , ltrPolicy . WeeklySchedule . DaysOfTheWeek ) ;
66
69
}
67
70
68
71
// validate monthly retention schedule with schPolicy
@@ -71,16 +74,17 @@ public static void ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy(
71
74
ValidateRetentionAndBackupTimes ( schPolicy . ScheduleRunTimes , ltrPolicy . MonthlySchedule . RetentionTimes ) ;
72
75
73
76
// if backupSchedule is weekly, then user cannot choose 'Daily Retention format'
74
- if ( schPolicy . ScheduleRunFrequency == ScheduleRunType . Weekly &&
77
+ if ( schPolicy . ScheduleRunFrequency == ScheduleRunType . Weekly &&
75
78
ltrPolicy . MonthlySchedule . RetentionScheduleFormatType == Cmdlets . Models . RetentionScheduleFormat . Daily )
76
79
{
77
80
throw new ArgumentException ( Resources . MonthlyYearlyInvalidDailyRetentionFormatTypeException ) ;
78
81
}
79
82
80
83
// for monthly and weeklyFormat, validate days of week
81
- if ( ltrPolicy . MonthlySchedule . RetentionScheduleFormatType == Cmdlets . Models . RetentionScheduleFormat . Weekly )
84
+ if ( ltrPolicy . MonthlySchedule . RetentionScheduleFormatType == Cmdlets . Models . RetentionScheduleFormat . Weekly &&
85
+ schPolicy . ScheduleRunFrequency == ScheduleRunType . Weekly )
82
86
{
83
- ValidateRetentionAndScheduleDaysOfWeek ( schPolicy . ScheduleRunDays ,
87
+ ValidateRetentionAndScheduleDaysOfWeek ( schPolicy . ScheduleRunDays ,
84
88
ltrPolicy . MonthlySchedule . RetentionScheduleWeekly . DaysOfTheWeek ) ;
85
89
}
86
90
}
@@ -98,7 +102,8 @@ public static void ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy(
98
102
}
99
103
100
104
// for yearly and weeklyFormat, validate days of week
101
- if ( ltrPolicy . YearlySchedule . RetentionScheduleFormatType == Cmdlets . Models . RetentionScheduleFormat . Weekly )
105
+ if ( ltrPolicy . YearlySchedule . RetentionScheduleFormatType == Cmdlets . Models . RetentionScheduleFormat . Weekly &&
106
+ schPolicy . ScheduleRunFrequency == ScheduleRunType . Weekly )
102
107
{
103
108
ValidateRetentionAndScheduleDaysOfWeek ( schPolicy . ScheduleRunDays ,
104
109
ltrPolicy . YearlySchedule . RetentionScheduleWeekly . DaysOfTheWeek ) ;
0 commit comments