public void HandleObfuscation(Entity entity, FieldToBeObfuscated field, IEntityMetadataCache metaData) { entity.ThrowArgumentNullExceptionIfNull(nameof(entity)); field.ThrowArgumentNullExceptionIfNull(nameof(field)); metaData.ThrowArgumentNullExceptionIfNull(nameof(metaData)); // Get the min and maximum values for the field using the meta data cache DoubleAttributeMetadata doubleMetaData = (DoubleAttributeMetadata)metaData.GetAttribute(entity.LogicalName, field.FieldName); int min = (int)doubleMetaData.MinValue.GetValueOrDefault(0); int max = (int)doubleMetaData.MaxValue.GetValueOrDefault(10); if (field.CanBeFormatted) { Dictionary <string, object> metadataParameters = new Dictionary <string, object> { { "min", min }, { "max", max } }; entity[field.FieldName] = formattingClient.CreateFormattedValue((double)entity[field.FieldName], field, metadataParameters); return; } entity[field.FieldName] = doubleScramblerClient.ExecuteScramble((double)entity[field.FieldName], min, max); }
public void HandleObfuscation(Entity entity, FieldToBeObfuscated field, IEntityMetadataCache metaData) { entity.ThrowArgumentNullExceptionIfNull(nameof(entity)); field.ThrowArgumentNullExceptionIfNull(nameof(field)); metaData.ThrowArgumentNullExceptionIfNull(nameof(metaData)); DecimalAttributeMetadata decimalMetaData = (DecimalAttributeMetadata)metaData.GetAttribute(entity.LogicalName, field.FieldName); int min = (int)decimalMetaData.MinValue.GetValueOrDefault(0); int max = (int)decimalMetaData.MaxValue.GetValueOrDefault(10); entity[field.FieldName] = decimalScramblerClient.ExecuteScramble((decimal)entity[field.FieldName], min, max); }
public void HandleObfuscation(Entity entity, FieldToBeObfuscated field, IEntityMetadataCache metaData) { entity.ThrowArgumentNullExceptionIfNull(nameof(entity)); field.ThrowArgumentNullExceptionIfNull(nameof(field)); metaData.ThrowArgumentNullExceptionIfNull(nameof(metaData)); // Get the min and maximum values for the field using the meta data cache IntegerAttributeMetadata intMetaData = (IntegerAttributeMetadata)metaData.GetAttribute(entity.LogicalName, field.FieldName); int min = intMetaData.MinValue.GetValueOrDefault(0); int max = intMetaData.MaxValue.GetValueOrDefault(10); entity[field.FieldName] = intScramblerClient.ExecuteScramble((int)entity[field.FieldName], min, max); }
public double CreateFormattedValue(double originalValue, FieldToBeObfuscated field, Dictionary <string, object> metadataParameters) { metadataParameters.ThrowArgumentNullExceptionIfNull(nameof(metadataParameters)); field.ThrowArgumentNullExceptionIfNull(nameof(field)); var replacementValue = Format(originalValue, field); while (replacementValue == originalValue || !ReplacementIsValid(replacementValue, metadataParameters)) { replacementValue = Format(originalValue, field); } return(replacementValue); }
public string CreateFormattedValue(string originalValue, FieldToBeObfuscated field, Dictionary <string, object> metadataParameters) { field.ThrowArgumentNullExceptionIfNull(nameof(field)); metadataParameters.ThrowArgumentNullExceptionIfNull(nameof(metadataParameters)); string replacementString = Format(originalValue, field, metadataParameters); while (replacementString == originalValue) { replacementString = Format(originalValue, field, metadataParameters); } return(replacementString); }
public void HandleObfuscation(Entity entity, FieldToBeObfuscated field, IEntityMetadataCache metaData) { entity.ThrowArgumentNullExceptionIfNull(nameof(entity)); field.ThrowArgumentNullExceptionIfNull(nameof(field)); metaData.ThrowArgumentNullExceptionIfNull(nameof(metaData)); StringAttributeMetadata stringMetaData = (StringAttributeMetadata)metaData.GetAttribute(entity.LogicalName, field.FieldName); if (field.CanBeFormatted) { Dictionary <string, object> metadataParams = new Dictionary <string, object>(); if (stringMetaData.MaxLength != null) { metadataParams.Add("maxlength", stringMetaData.MaxLength); } entity[field.FieldName] = formattingClient.CreateFormattedValue((string)entity[field.FieldName], field, metadataParams); return; } entity[field.FieldName] = strScramblerClient.ExecuteScramble((string)entity[field.FieldName]); }