protected override void PrepareRecipientObject(TDataObject recipient)
 {
     TaskLogger.LogEnter();
     base.PrepareRecipientObject(recipient);
     if (base.Fields.Contains(ADRecipientSchema.ModeratedBy))
     {
         MultiValuedProperty <ModeratorIDParameter> multiValuedProperty = (MultiValuedProperty <ModeratorIDParameter>)base.Fields[ADRecipientSchema.ModeratedBy];
         int num = VariantConfiguration.GetSnapshot(MachineSettingsContext.Local, null, null).Global.MultiTenancy.Enabled ? 10 : 25;
         if (multiValuedProperty != null && multiValuedProperty.Count > num)
         {
             base.WriteError(new RecipientTaskException(Strings.ErrorTooManyModerators(num)), ExchangeErrorCategory.Client, null);
         }
         recipient.ModeratedBy = RecipientTaskHelper.GetModeratedByAdObjectIdFromParameterID(base.TenantGlobalCatalogSession, this.ModeratedBy, new DataAccessHelper.CategorizedGetDataObjectDelegate(base.GetDataObject <ADRecipient>), recipient, new Task.ErrorLoggerDelegate(base.WriteError));
     }
     if (base.Fields.IsModified(ADRecipientSchema.ArbitrationMailbox))
     {
         if (this.ArbitrationMailbox != null)
         {
             ADRecipient adrecipient = (ADRecipient)base.GetDataObject <ADRecipient>(this.ArbitrationMailbox, (IRecipientSession)base.DataSession, null, new LocalizedString?(Strings.ErrorMailboxNotFound(this.ArbitrationMailbox.ToString())), new LocalizedString?(Strings.ErrorMailboxNotUnique(this.ArbitrationMailbox.ToString())), ExchangeErrorCategory.Client);
             if (adrecipient.RecipientTypeDetails != RecipientTypeDetails.ArbitrationMailbox)
             {
                 base.WriteError(new RecipientTaskException(Strings.ErrorInvalidArbitrationMbxType(adrecipient.Identity.ToString())), ExchangeErrorCategory.Client, recipient.Identity);
             }
             if (MultiValuedPropertyBase.IsNullOrEmpty((ADMultiValuedProperty <ADObjectId>)adrecipient[ADUserSchema.ApprovalApplications]))
             {
                 base.WriteError(new RecipientTaskException(Strings.ErrorInvalidArbitrationMbxTypeForModerationAndAutogroup(adrecipient.Identity.ToString())), ExchangeErrorCategory.Client, recipient.Identity);
             }
             if (!recipient.OrganizationId.Equals(adrecipient.OrganizationId))
             {
                 base.WriteError(new RecipientTaskException(Strings.ErrorArbitrationMbxCrossOrg(adrecipient.Identity.ToString())), ExchangeErrorCategory.Client, recipient.Identity);
             }
             recipient.ArbitrationMailbox = adrecipient.Id;
         }
         else
         {
             recipient.ArbitrationMailbox = null;
         }
     }
     TaskLogger.LogExit();
 }