ToTimeSpan() public static method

Converts RecurrencyFrequecy and Interval to TimeSpan.
public static ToTimeSpan ( RecurrenceFrequency frequency, int interval ) : System.TimeSpan
frequency RecurrenceFrequency RecurrenceFrequency.
interval int Interval.
return System.TimeSpan
Ejemplo n.º 1
0
        /// <summary>
        /// Get max recurrence for the job collection.
        /// </summary>
        /// <param name="frequencyInput">Frequence specified via powershell.</param>
        /// <param name="intervalInput">Interval specified via powershell.</param>
        /// <param name="minRecurrenceQuota">Min reurrence quota.</param>
        /// <param name="errorMessage">Error message for invalid recurrence.</param>
        /// <returns>Maximum recurrence.</returns>
        private JobMaxRecurrence GetMaxRecurrence(string frequencyInput, int?intervalInput, TimeSpan minRecurrenceQuota, string errorMessage)
        {
            int interval = intervalInput.HasValue ? intervalInput.Value : minRecurrenceQuota.GetInterval();
            RecurrenceFrequency frequency = frequencyInput.GetValueOrDefaultEnum <RecurrenceFrequency>(defaultValue: minRecurrenceQuota.GetFrequency());

            TimeSpan recurrenceTimeSpan = SchedulerUtility.ToTimeSpan(frequency, interval);

            if (recurrenceTimeSpan < minRecurrenceQuota)
            {
                throw new PSArgumentException(string.Format(errorMessage, recurrenceTimeSpan, minRecurrenceQuota));
            }

            return(new JobMaxRecurrence(frequency, interval));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Populate quota object with valid values.
        /// </summary>
        /// <param name="quota">Quota object.</param>
        /// <param name="skuDefinition">Sku definition (Free, Standard, P10Premium, and P20Premium</param>
        /// <param name="jobCollectionParams">Job collection parameters set via powershell.</param>
        /// <param name="newQuota">boolean to indicate whether quota object is new or existing.</param>
        private void PopulateJobCollectionQuota(JobCollectionQuota quota, SkuDefinition skuDefinition, PSJobCollectionsParams jobCollectionParams, bool newQuota = true)
        {
            if (quota == null && !newQuota)
            {
                throw new ArgumentOutOfRangeException("quota", "Quota is null.");
            }

            if (quota == null)
            {
                quota = new JobCollectionQuota();
            }

            int      existingMaxCountValue      = Constants.MaxJobCountQuotaStandard;
            TimeSpan existingMinRecurrenceValue = Constants.MinRecurrenceQuotaStandard;

            if (!newQuota)
            {
                existingMaxCountValue      = quota.MaxJobCount.Value;
                existingMinRecurrenceValue = SchedulerUtility.ToTimeSpan(quota.MaxRecurrence.Frequency.Value, quota.MaxRecurrence.Interval.Value);
            }

            switch (skuDefinition)
            {
            case SkuDefinition.Free:
                quota.MaxJobCount = this.GetMaxJobCount(
                    jobCollectionParams.MaxJobCount,
                    newQuota ? Constants.MaxJobCountQuotaFree : existingMaxCountValue,
                    Resources.JobCollectionMaxJobQuotaTooLargeForFree);

                quota.MaxRecurrence = this.GetMaxRecurrence(
                    jobCollectionParams.Frequency,
                    jobCollectionParams.Interval,
                    newQuota ? Constants.MinRecurrenceQuotaFree : existingMinRecurrenceValue,
                    Resources.JobCollectionMaxRecurrenceQuotaTooLargeForFree);
                break;

            case SkuDefinition.Standard:
            case SkuDefinition.P10Premium:
            default:
                quota.MaxJobCount = this.GetMaxJobCount(
                    jobCollectionParams.MaxJobCount,
                    newQuota ? Constants.MaxJobCountQuotaStandard : existingMaxCountValue,
                    Resources.JobCollectionMaxJobQuotaTooLargeForPaid);

                quota.MaxRecurrence = this.GetMaxRecurrence(
                    jobCollectionParams.Frequency,
                    jobCollectionParams.Interval,
                    newQuota ? Constants.MinRecurrenceQuotaStandard : existingMinRecurrenceValue,
                    Resources.JobCollectionMaxJobQuotaTooLargeForPaid);
                break;

            case SkuDefinition.P20Premium:
                quota.MaxJobCount = this.GetMaxJobCount(
                    jobCollectionParams.MaxJobCount,
                    newQuota ? Constants.MaxJobCountQuotaP20Premium : existingMaxCountValue,
                    Resources.JobCollectionMaxJobQuotaTooLargeForPaid);

                quota.MaxRecurrence = this.GetMaxRecurrence(
                    jobCollectionParams.Frequency,
                    jobCollectionParams.Interval,
                    newQuota ? Constants.MinRecurrenceQuotaP20Premium : existingMinRecurrenceValue,
                    Resources.JobCollectionMaxJobQuotaTooLargeForPaid);
                break;
            }
        }