private static async Task InitializeRandomItemsStandardAsync(this IDataBase dataBase, Authentication authentication, DataBaseSettings settings) { var typeContext = dataBase.GetService(typeof(ITypeContext)) as ITypeContext; var tableContext = dataBase.GetService(typeof(ITableContext)) as ITableContext; await typeContext.AddRandomItemsAsync(authentication, settings); await tableContext.AddRandomItemsAsync(authentication, settings); }
public static async Task InitializeRandomItemsAsync(this IDataBase dataBase, Authentication authentication, DataBaseSettings settings) { if (settings.Transaction == true) { await InitializeRandomItemsTransactionAsync(dataBase, authentication, settings); } else { await InitializeRandomItemsStandardAsync(dataBase, authentication, settings); } }
public static async Task <ITable> AddRandomChildTableAsync(this ITable table, Authentication authentication, DataBaseSettings settings) { var copyData = RandomUtility.NextBoolean(); var template = await table.NewTableAsync(authentication); await template.InitializeRandomAsync(authentication); await template.EndEditAsync(authentication); if (template.Target is ITable[] tables) { foreach (var item in tables) { var minCount = settings.TableContext.MinRowCount; var maxCount = settings.TableContext.MaxRowCount; var count = RandomUtility.Next(minCount, maxCount); await AddRandomRowsAsync(item, authentication, count); } return(tables.First()); } else { throw new NotImplementedException(); } }
private static async Task InitializeRandomItemsTransactionAsync(this IDataBase dataBase, Authentication authentication, DataBaseSettings settings) { var trans = await dataBase.BeginTransactionAsync(authentication); try { var typeContext = dataBase.GetService(typeof(ITypeContext)) as ITypeContext; var tableContext = dataBase.GetService(typeof(ITableContext)) as ITableContext; await typeContext.AddRandomItemsAsync(authentication, settings); await tableContext.AddRandomItemsAsync(authentication, settings); await trans.CommitAsync(authentication); } catch (Exception e) { await trans.RollbackAsync(authentication); throw e; } }
public static async Task AddRandomItemsAsync(this ITypeContext typeContext, Authentication authentication, DataBaseSettings settings) { await AddRandomCategoriesAsync(typeContext, authentication, settings); await AddRandomTypesAsync(typeContext, authentication, settings); }
public static async Task AddRandomTypesAsync(this ITypeContext typeContext, Authentication authentication, DataBaseSettings settings) { var minCount = settings.TypeContext.MinTypeCount; var maxCount = settings.TypeContext.MaxTypeCount; var count = RandomUtility.Next(minCount, maxCount); var typeCollection = typeContext.GetService(typeof(ITypeCollection)) as ITypeCollection; while (typeCollection.Count < count) { await AddRandomTypeAsync(typeContext, authentication); } }
public static async Task AddRandomCategoriesAsync(this ITableContext tableContext, Authentication authentication, DataBaseSettings settings) { var minCount = settings.TableContext.MinTableCategoryCount; var maxCount = settings.TableContext.MaxTableCategoryCount; var count = RandomUtility.Next(minCount, maxCount); var tableCategoryCollection = tableContext.GetService(typeof(ITableCategoryCollection)) as ITableCategoryCollection; while (await tableCategoryCollection.GetCountAsync() < count) { await tableContext.AddRandomCategoryAsync(authentication); } }
public static async Task AddRandomItemsAsync(this ITableContext tableContext, Authentication authentication, DataBaseSettings settings) { await AddRandomCategoriesAsync(tableContext, authentication, settings); await AddRandomTablesAsync(tableContext, authentication, settings); await AddRandomChildTablesAsync(tableContext, authentication, settings); await AddRandomDerivedTablesAsync(tableContext, authentication, settings); }
public static async Task <ITable> AddRandomChildTableAsync(this ITableContext tableContext, Authentication authentication, DataBaseSettings settings) { var tableCollection = tableContext.GetService(typeof(ITableCollection)) as ITableCollection; var table = await tableCollection.GetRandomTableAsync(item => item.TemplatedParent == null && item.Parent == null); return(await table.AddRandomChildTableAsync(authentication, settings)); }
public static async Task AddRandomChildTablesAsync(this ITableContext tableContext, Authentication authentication, DataBaseSettings settings) { var minCount = settings.TableContext.MinChildTableCount; var maxCount = settings.TableContext.MaxChildTableCount; var count = RandomUtility.Next(minCount, maxCount); while (await GetChildTableCountAsync() < count) { await AddRandomChildTableAsync(tableContext, authentication, settings); } Task <int> GetChildTableCountAsync() { var tableCollection = tableContext.GetService(typeof(ITableCollection)) as ITableCollection; return(tableCollection.Dispatcher.InvokeAsync(() => { return tableCollection.Where(item => item.Parent != null && item.TemplatedParent == null).Count(); })); } }
public static async Task <ITable> AddRandomTableAsync(this ITableContext tableContext, Authentication authentication, DataBaseSettings settings) { var tableCategoryCollection = tableContext.GetService(typeof(ITableCategoryCollection)) as ITableCategoryCollection; var category = await tableCategoryCollection.GetRandomTableCategoryAsync(); return(await AddRandomTableAsync(category, authentication, settings)); }