public static async Task InitializeRandomAsync(this ITableColumn tableColumn, Authentication authentication) { var template = tableColumn.Template; var table = tableColumn.Template.Target; if (RandomUtility.Within(75) == true) { await tableColumn.SetDataTypeAsync(authentication, CremaDataTypeUtility.GetBaseTypeNames().Random(item => item != typeof(bool).GetTypeName())); } else { await tableColumn.SetDataTypeAsync(authentication, template.SelectableTypes.Random()); } if (template.Count == 0) { await tableColumn.SetIsKeyAsync(authentication, true); } else if (RandomUtility.Within(10) && tableColumn.DataType != typeof(bool).GetTypeName()) { await tableColumn.SetIsKeyAsync(authentication, true); await tableColumn.SetIsUniqueAsync(authentication, RandomUtility.Within(75)); } if (RandomUtility.Within(25) && tableColumn.DataType != typeof(bool).GetTypeName()) { var unique = RandomUtility.Within(75); if (unique != false || template.PrimaryKey.Count() != 1) { await tableColumn.SetIsUniqueAsync(authentication, unique); } } if (RandomUtility.Within(25) == true) { await tableColumn.SetCommentAsync(authentication, RandomUtility.NextString()); } if (RandomUtility.Within(25) == true) { await tableColumn.SetDefaultValueAsync(authentication, await tableColumn.GetRandomStringAsync()); } if (CremaDataTypeUtility.CanUseAutoIncrement(tableColumn.DataType) == true && tableColumn.DefaultValue == null) { await tableColumn.SetAutoIncrementAsync(authentication, RandomUtility.NextBoolean()); } if (RandomUtility.Within(5) == true) { await tableColumn.SetIsReadOnlyAsync(authentication, true); } }
public async Task SetIsKeyAsync(ITableColumn column, TaskContext context) { var authentication = context.Authentication; var isKey = RandomUtility.NextBoolean(); await column.SetIsKeyAsync(authentication, isKey); }