internal static int GetMailboxCount(ExchangeUpgradeBucket bucket) { int num = 0; List <ADObjectId> list = new List <ADObjectId>(bucket.Organizations.Count); foreach (ADObjectId adobjectId in bucket.Organizations) { int?mailboxCountFromCache = UpgradeBucketTaskHelper.MailboxCountCache.GetMailboxCountFromCache(adobjectId); if (mailboxCountFromCache != null) { num += mailboxCountFromCache.Value; } else { ADObjectIdResolutionHelper.ResolveDN(adobjectId); } } list.Sort((ADObjectId x, ADObjectId y) => x.PartitionGuid.CompareTo(y.PartitionGuid)); ADObjectId adobjectId2 = null; ITenantConfigurationSession tenantConfigurationSession = null; foreach (ADObjectId adobjectId3 in list) { if (adobjectId2 == null || !adobjectId2.PartitionGuid.Equals(adobjectId3.PartitionGuid)) { tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromAllTenantsObjectId(adobjectId3), 59, "GetMailboxCount", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\UpgradeBucketTaskHelper.cs"); } ExchangeConfigurationUnit exchangeConfigurationUnit = tenantConfigurationSession.Read <ExchangeConfigurationUnit>(adobjectId3); if (exchangeConfigurationUnit != null) { int mailboxCount = UpgradeBucketTaskHelper.MailboxCountCache.GetMailboxCount(exchangeConfigurationUnit.OrganizationId, tenantConfigurationSession); num += mailboxCount; } adobjectId2 = adobjectId3; } return(num); }
// Token: 0x06000B05 RID: 2821 RVA: 0x00023ABD File Offset: 0x00021CBD public ExchangeUpgradeBucketIdParameter(ExchangeUpgradeBucket upgradeBucket) : base(upgradeBucket.Id) { }
internal static void ValidateOrganizationVersion(ExchangeConfigurationUnit configurationUnit, ExchangeUpgradeBucket exchangeUpgradeBucket, Task.ErrorLoggerDelegate errorLogger) { string text = configurationUnit.IsUpgradingOrganization ? exchangeUpgradeBucket.TargetVersion : exchangeUpgradeBucket.SourceVersion; if (!UpgradeBucketTaskHelper.ValidateExchangeObjectVersion(configurationUnit.AdminDisplayVersion, text)) { errorLogger(new RecipientTaskException(Strings.ExchangeUpgradeBucketInvalidOrganizationVersion(configurationUnit.AdminDisplayVersion.ToString(), text)), ExchangeErrorCategory.Client, null); } }
internal static void ValidateOrganizationAddition(ITopologyConfigurationSession configSession, OrganizationId organizationId, ExchangeUpgradeBucket exchangeUpgradeBucket, Task.ErrorLoggerDelegate errorLogger) { if (!exchangeUpgradeBucket.MaxMailboxes.IsUnlimited && !exchangeUpgradeBucket.Organizations.Contains(organizationId.ConfigurationUnit)) { int mailboxCount = UpgradeBucketTaskHelper.MailboxCountCache.GetMailboxCount(organizationId, configSession); int mailboxCount2 = UpgradeBucketTaskHelper.GetMailboxCount(exchangeUpgradeBucket); int num = exchangeUpgradeBucket.MaxMailboxes.Value - mailboxCount2; if (mailboxCount > num) { errorLogger(new RecipientTaskException(Strings.ExchangeUpgradeBucketNotEnoughCapacity(exchangeUpgradeBucket.ToString(), num.ToString(), mailboxCount.ToString())), ExchangeErrorCategory.Client, organizationId); } } }
protected override IConfigurable PrepareDataObject() { TaskLogger.LogEnter(); ExchangeConfigurationUnit exchangeConfigurationUnit = (ExchangeConfigurationUnit)base.PrepareDataObject(); if (base.Fields.IsModified(OrganizationSchema.DefaultMovePriority)) { exchangeConfigurationUnit.DefaultMovePriority = this.DefaultMovePriority; } if (base.Fields.IsModified("TenantSKUCapability")) { CapabilityHelper.SetTenantSKUCapabilities(this.PersistedCapabilities, exchangeConfigurationUnit.PersistedCapabilities); } if (base.Fields.IsModified(OrganizationSchema.UpgradeMessage)) { exchangeConfigurationUnit.UpgradeMessage = this.UpgradeMessage; } if (base.Fields.IsModified(OrganizationSchema.UpgradeDetails)) { exchangeConfigurationUnit.UpgradeDetails = this.UpgradeDetails; } if (base.Fields.IsModified(OrganizationSchema.UpgradeConstraints)) { exchangeConfigurationUnit.UpgradeConstraints = this.UpgradeConstraints; } if (base.Fields.IsModified(OrganizationSchema.UpgradeStage)) { exchangeConfigurationUnit.UpgradeStage = this.UpgradeStage; } if (base.Fields.IsModified(OrganizationSchema.UpgradeStageTimeStamp)) { exchangeConfigurationUnit.UpgradeStageTimeStamp = this.UpgradeStageTimeStamp; } if (base.Fields.IsModified(OrganizationSchema.UpgradeE14RequestCountForCurrentStage)) { exchangeConfigurationUnit.UpgradeE14RequestCountForCurrentStage = this.UpgradeE14RequestCountForCurrentStage; } if (base.Fields.IsModified(OrganizationSchema.UpgradeE14MbxCountForCurrentStage)) { exchangeConfigurationUnit.UpgradeE14MbxCountForCurrentStage = this.UpgradeE14MbxCountForCurrentStage; } if (base.Fields.IsModified(OrganizationSchema.UpgradeLastE14CountsUpdateTime)) { exchangeConfigurationUnit.UpgradeLastE14CountsUpdateTime = this.UpgradeLastE14CountsUpdateTime; } if (base.Fields.IsModified(OrganizationSchema.UpgradeConstraintsDisabled)) { exchangeConfigurationUnit.UpgradeConstraintsDisabled = this.UpgradeConstraintsDisabled; } if (base.Fields.IsModified(OrganizationSchema.UpgradeUnitsOverride)) { exchangeConfigurationUnit.UpgradeUnitsOverride = this.UpgradeUnitsOverride; } if (base.Fields.IsModified(OrganizationSchema.MaxAddressBookPolicies)) { exchangeConfigurationUnit.MaxAddressBookPolicies = new int?(this.MaxAddressBookPolicies); } if (base.Fields.IsModified(OrganizationSchema.MaxOfflineAddressBooks)) { exchangeConfigurationUnit.MaxOfflineAddressBooks = new int?(this.MaxOfflineAddressBooks); } if (this.RemoveSharedConfigurations) { exchangeConfigurationUnit.SupportedSharedConfigurations.Clear(); } if (base.Fields.IsModified(OrganizationSchema.SupportedSharedConfigurations)) { if (this.ClearPreviousSharedConfigurations) { exchangeConfigurationUnit.SupportedSharedConfigurations.Clear(); } foreach (ExchangeConfigurationUnit exchangeConfigurationUnit2 in this.SharedConfigurationUnits) { if (!exchangeConfigurationUnit.SupportedSharedConfigurations.Contains(exchangeConfigurationUnit2.OrganizationId.ConfigurationUnit)) { exchangeConfigurationUnit.SupportedSharedConfigurations.Add(exchangeConfigurationUnit2.Identity); } } } if (base.Fields.IsModified(OrganizationSchema.EnableAsSharedConfiguration)) { exchangeConfigurationUnit.EnableAsSharedConfiguration = this.EnableAsSharedConfiguration; } if (base.Fields.IsModified(OrganizationSchema.ImmutableConfiguration)) { exchangeConfigurationUnit.ImmutableConfiguration = this.ImmutableConfiguration; } if (base.Fields.IsModified(OrganizationSchema.IsDehydrated)) { exchangeConfigurationUnit.IsDehydrated = this.IsDehydrated; } if (base.Fields.IsModified(OrganizationSchema.IsStaticConfigurationShared)) { exchangeConfigurationUnit.IsStaticConfigurationShared = this.IsStaticConfigurationShared; } if (base.Fields.IsModified(OrganizationSchema.IsUpdatingServicePlan)) { exchangeConfigurationUnit.IsUpdatingServicePlan = this.IsUpdatingServicePlan; } if (base.Fields.IsModified(ExchangeConfigurationUnitSchema.ProgramId)) { exchangeConfigurationUnit.ProgramId = this.ProgramId; } if (base.Fields.IsModified(ExchangeConfigurationUnitSchema.OfferId)) { exchangeConfigurationUnit.OfferId = this.OfferId; } if (base.Fields.IsModified(ExchangeConfigurationUnitSchema.ServicePlan)) { exchangeConfigurationUnit.ServicePlan = this.ServicePlan; } if (base.Fields.IsModified(ExchangeConfigurationUnitSchema.TargetServicePlan)) { exchangeConfigurationUnit.TargetServicePlan = this.TargetServicePlan; } if (!exchangeConfigurationUnit.HostingDeploymentEnabled && Datacenter.IsPartnerHostedOnly(false)) { exchangeConfigurationUnit.HostingDeploymentEnabled = true; } if (base.Fields.IsModified(OrganizationSchema.ExcludedFromBackSync)) { exchangeConfigurationUnit.ExcludedFromBackSync = this.ExcludedFromBackSync; } if (base.Fields.IsModified(OrganizationSchema.ExcludedFromForwardSyncEDU2BPOS)) { exchangeConfigurationUnit.ExcludedFromForwardSyncEDU2BPOS = this.ExcludedFromForwardSyncEDU2BPOS; } if (base.Fields.IsModified(ExchangeConfigurationUnitSchema.ExchangeUpgradeBucket)) { if (this.ExchangeUpgradeBucket != null) { ExchangeUpgradeBucket exchangeUpgradeBucket = (ExchangeUpgradeBucket)base.GetDataObject <ExchangeUpgradeBucket>(this.ExchangeUpgradeBucket, base.GlobalConfigSession, null, new LocalizedString?(Strings.ErrorExchangeUpgradeBucketNotFound(this.ExchangeUpgradeBucket.ToString())), new LocalizedString?(Strings.ErrorExchangeUpgradeBucketNotUnique(this.ExchangeUpgradeBucket.ToString()))); UpgradeBucketTaskHelper.ValidateOrganizationVersion(exchangeConfigurationUnit, exchangeUpgradeBucket, new Task.ErrorLoggerDelegate(base.WriteError)); UpgradeBucketTaskHelper.ValidateOrganizationAddition(base.GlobalConfigSession, exchangeConfigurationUnit.OrganizationId, exchangeUpgradeBucket, new Task.ErrorLoggerDelegate(base.WriteError)); exchangeConfigurationUnit.ExchangeUpgradeBucket = (ADObjectId)exchangeUpgradeBucket.Identity; } else { exchangeConfigurationUnit.ExchangeUpgradeBucket = null; } } if (base.Fields.IsModified(OrganizationSchema.MailboxRelease)) { exchangeConfigurationUnit.MailboxRelease = this.MailboxRelease; } if (base.Fields.IsModified(OrganizationSchema.PreviousMailboxRelease)) { exchangeConfigurationUnit.PreviousMailboxRelease = this.PreviousMailboxRelease; } if (base.Fields.IsModified(OrganizationSchema.PilotMailboxRelease)) { exchangeConfigurationUnit.PilotMailboxRelease = this.PilotMailboxRelease; } if (base.Fields.IsModified("AddRelocationConstraint")) { RelocationConstraint constraintToAdd = new RelocationConstraint((RelocationConstraintType)this.RelocationConstraintType, DateTime.UtcNow.AddDays((double)this.RelocationConstraintExpirationInDays)); RelocationConstraintArray persistedRelocationConstraints = SetOrganization.PopulateRelocationConstraintsList(exchangeConfigurationUnit.PersistedRelocationConstraints, this.RelocationConstraintType, constraintToAdd); exchangeConfigurationUnit.PersistedRelocationConstraints = persistedRelocationConstraints; } else if (base.Fields.IsModified("RemoveRelocationConstraint")) { RelocationConstraintArray persistedRelocationConstraints2 = SetOrganization.PopulateRelocationConstraintsList(exchangeConfigurationUnit.PersistedRelocationConstraints, this.RelocationConstraintType, null); exchangeConfigurationUnit.PersistedRelocationConstraints = persistedRelocationConstraints2; } OrganizationStatus organizationStatus; if (exchangeConfigurationUnit.IsModified(ExchangeConfigurationUnitSchema.OrganizationStatus) && exchangeConfigurationUnit.TryGetOriginalValue <OrganizationStatus>(ExchangeConfigurationUnitSchema.OrganizationStatus, out organizationStatus)) { if (OrganizationStatus.Active == exchangeConfigurationUnit.OrganizationStatus && (OrganizationStatus.Suspended == organizationStatus || OrganizationStatus.LockedOut == organizationStatus)) { exchangeConfigurationUnit.IsTenantAccessBlocked = false; } else if ((OrganizationStatus.Suspended == exchangeConfigurationUnit.OrganizationStatus || OrganizationStatus.LockedOut == exchangeConfigurationUnit.OrganizationStatus) && OrganizationStatus.Active == organizationStatus) { exchangeConfigurationUnit.IsTenantAccessBlocked = true; } } if (base.Fields.IsModified(OrganizationSchema.IsLicensingEnforced)) { exchangeConfigurationUnit.IsLicensingEnforced = this.IsLicensingEnforced; } TaskLogger.LogExit(); return(exchangeConfigurationUnit); }