public JobIndex(AbstractJobIndexId abstractJobIndexId, Period period, SharedJobIndex sharedJobIndex, JobIndexGroup group, bool isInquireable, long calculationLevel = 1, int calculationOrder = 1) { if (period == null) { throw new ArgumentNullException("period"); } period.CheckAssigningJobIndex(); if (sharedJobIndex == null) { throw new ArgumentNullException("sharedJobIndex"); } if (group == null) { throw new ArgumentNullException("group"); } if (!group.PeriodId.Equals(period.Id)) { throw new JobIndexCompareException("JobIndex", "JobIndexGroup", "Period"); } this.calculationLevel = calculationLevel; // must be check periodId id = abstractJobIndexId; periodId = period.Id; this.group = group; this.sharedJobIndex = sharedJobIndex; this.isInquireable = isInquireable; this.calculationOrder = calculationOrder; }