public virtual void Validate(ScheduleRunType ScheduleRunFrequency = 0) { if (ScheduleRunFrequency != ScheduleRunType.Hourly) // RetentionTimes are not needed for Hourly policy { if (RetentionTimes == null || RetentionTimes.Count != 1) { throw new ArgumentException(Resources.InvalidRetentionTimesInPolicyException); } } }
// no extra fields public override void Validate(ScheduleRunType ScheduleRunFrequency = 0) { int MinDurationCountInDays = 7, MaxDurationCountInDays = PolicyConstants.MaxAllowedRetentionDurationCount; if (BackupManagementType == Management.RecoveryServices.Backup.Models.BackupManagementType.AzureStorage) { MinDurationCountInDays = PolicyConstants.AfsDailyRetentionDaysMin; MaxDurationCountInDays = PolicyConstants.AfsDailyRetentionDaysMax; } if (DurationCountInDays < MinDurationCountInDays || DurationCountInDays > MaxDurationCountInDays) { throw new ArgumentException(Resources.RetentionDurationCountInDaysInvalidException); } base.Validate(ScheduleRunFrequency); }
public override void Validate(ScheduleRunType ScheduleRunFrequency = 0) { base.Validate(ScheduleRunFrequency); int MinDurationCountInYears = 1, MaxDurationCountInYears = PolicyConstants.MaxAllowedRetentionDurationCountYearly; if (BackupManagementType == Management.RecoveryServices.Backup.Models.BackupManagementType.AzureStorage) { MinDurationCountInYears = PolicyConstants.AfsYearlyRetentionMin; MaxDurationCountInYears = PolicyConstants.AfsYearlyRetentionMax; } if (DurationCountInYears < MinDurationCountInYears || DurationCountInYears > MaxDurationCountInYears) { throw new ArgumentException(Resources.RetentionDurationCountInvalidException); } if (MonthsOfYear == null || MonthsOfYear.Count == 0 || MonthsOfYear.Count != MonthsOfYear.Distinct().Count()) { throw new ArgumentException(Resources.YearlyScheduleMonthsOfYearException); } if (RetentionScheduleFormatType == RetentionScheduleFormat.Daily) { if (RetentionScheduleDaily == null) { throw new ArgumentException(Resources.MonthlyYearlyRetentionDailySchedulePolicyNULLException); } RetentionScheduleDaily.Validate(); } if (RetentionScheduleFormatType == RetentionScheduleFormat.Weekly) { if (RetentionScheduleWeekly == null) { throw new ArgumentException(Resources.MonthlyYearlyRetentionWeeklySchedulePolicyNULLException); } RetentionScheduleWeekly.Validate(); } }
public override void Validate(ScheduleRunType ScheduleRunFrequency = 0) { int MinDurationCountInWeeks = 1, MaxDurationCountInWeeks = PolicyConstants.MaxAllowedRetentionDurationCountWeekly; if (BackupManagementType == Management.RecoveryServices.Backup.Models.BackupManagementType.AzureStorage) { MinDurationCountInWeeks = PolicyConstants.AfsWeeklyRetentionMin; MaxDurationCountInWeeks = PolicyConstants.AfsWeeklyRetentionMax; } if (DurationCountInWeeks < MinDurationCountInWeeks || DurationCountInWeeks > MaxDurationCountInWeeks) { throw new ArgumentException(Resources.RetentionDurationCountInvalidException); } if (DaysOfTheWeek == null || DaysOfTheWeek.Count == 0 || DaysOfTheWeek.Count != DaysOfTheWeek.Distinct().Count()) { throw new ArgumentException(Resources.WeeklyRetentionScheduleDaysOfWeekException); } base.Validate(ScheduleRunFrequency); }
/// <summary> /// Validates null values and other possible combinations /// </summary> public void Validate(ScheduleRunType ScheduleRunFrequency = 0) { base.Validate(); if (IsDailyScheduleEnabled == false && IsWeeklyScheduleEnabled == false && IsMonthlyScheduleEnabled == false && IsYearlyScheduleEnabled == false) { throw new ArgumentException(Resources.AllRetentionSchedulesEmptyException); } if (IsDailyScheduleEnabled) { if (DailySchedule == null) { throw new ArgumentException(Resources.DailyScheduleEnabledButScheduleIsNullException); } else { DailySchedule.BackupManagementType = BackupManagementType; DailySchedule.Validate(ScheduleRunFrequency); } } if (IsWeeklyScheduleEnabled) { if (WeeklySchedule == null) { throw new ArgumentException(Resources.WeeklyScheduleEnabledButScheduleIsNullException); } else { WeeklySchedule.BackupManagementType = BackupManagementType; WeeklySchedule.Validate(ScheduleRunFrequency); } } if (IsMonthlyScheduleEnabled) { if (MonthlySchedule == null) { throw new ArgumentException(Resources.MonthlyScheduleEnabledButScheduleIsNullException); } else { MonthlySchedule.BackupManagementType = BackupManagementType; MonthlySchedule.Validate(ScheduleRunFrequency); } } if (IsYearlyScheduleEnabled) { if (YearlySchedule == null) { throw new ArgumentException(Resources.YearlyScheduleEnabledButScheduleIsNullException); } else { YearlySchedule.BackupManagementType = BackupManagementType; YearlySchedule.Validate(ScheduleRunFrequency); } } }
private static void ValidateRetentionAndBackupTimes(List <DateTime> schPolicyTimes, List <DateTime> retPolicyTimes, ScheduleRunType scheduleRunFrequency = 0) { if (scheduleRunFrequency != ScheduleRunType.Hourly) { //Currently supported BackupTimes & retentionTimes is 1 if (retPolicyTimes == null || retPolicyTimes.Count != 1) { throw new ArgumentException(Resources.InvalidRetentionTimesInPolicyException); } if (schPolicyTimes == null || schPolicyTimes.Count != 1) { throw new ArgumentException(Resources.InvalidBackupTimesInSchedulePolicyException); } if (schPolicyTimes[0] != retPolicyTimes[0]) { throw new ArgumentException(Resources.BackupAndRetentionTimesMismatch); } } }