internal AddRemoveIncrementalNamedPartitionScalingMechanism(AddRemoveIncrementalNamedPartitionScalingMechanism other)
     : base(ScalingMechanismKind.AddRemoveIncrementalNamedPartition)
 {
     MinPartitionCount = other.MinPartitionCount;
     MaxPartitionCount = other.MaxPartitionCount;
     ScaleIncrement    = other.ScaleIncrement;
 }
 internal static unsafe ScalingMechanismDescription CreateFromNative(NativeTypes.FABRIC_SCALING_MECHANISM mechanism)
 {
     if (mechanism.ScalingMechanismKind == NativeTypes.FABRIC_SCALING_MECHANISM_KIND.FABRIC_SCALING_MECHANISM_KIND_SCALE_PARTITION_INSTANCE_COUNT)
     {
         return(PartitionInstanceCountScaleMechanism.CreateFromNative(mechanism));
     }
     else if (mechanism.ScalingMechanismKind == NativeTypes.FABRIC_SCALING_MECHANISM_KIND.FABRIC_SCALING_MECHANISM_KIND_ADD_REMOVE_INCREMENTAL_NAMED_PARTITION)
     {
         return(AddRemoveIncrementalNamedPartitionScalingMechanism.CreateFromNative(mechanism));
     }
     else
     {
         return(null);
     }
 }
        internal new static unsafe AddRemoveIncrementalNamedPartitionScalingMechanism CreateFromNative(NativeTypes.FABRIC_SCALING_MECHANISM policy)
        {
            if (policy.ScalingMechanismDescription != IntPtr.Zero)
            {
                var AddRemoveIncrementalNamedPartition = new AddRemoveIncrementalNamedPartitionScalingMechanism();
                var nativeDescription = (NativeTypes.FABRIC_SCALING_MECHANISM_ADD_REMOVE_INCREMENTAL_NAMED_PARTITION *)policy.ScalingMechanismDescription;

                AddRemoveIncrementalNamedPartition.ScaleIncrement    = nativeDescription->ScaleIncrement;
                AddRemoveIncrementalNamedPartition.MinPartitionCount = nativeDescription->MinimumPartitionCount;
                AddRemoveIncrementalNamedPartition.MaxPartitionCount = nativeDescription->MaximumPartitionCount;

                return(AddRemoveIncrementalNamedPartition);
            }

            return(null);
        }