public async Task <Result <IStreamDb> > CreateForApp(string appId, string dbId, MdHeadPermissionSettings permissionSettings = null) { var manager = new MdHeadManager(_dataOps, NodeFactory, appId, DataProtocol.DEFAULT_AD_PROTOCOL, permissionSettings); await manager.InitializeManager(); var streamDbHead = await manager.GetOrAddHeadAsync(dbId); var dbResult = await GetOrAddAsync(streamDbHead); return(dbResult); }
public static async Task <Result <FileSystem> > CreateForSAFEApp(SafeApp.Session session, string appId, string root) { var manager = new MdHeadManager(session, appId, DataProtocol.DEFAULT_PROTOCOL); await manager.InitializeManager(); MdAccess.SetCreator((level) => manager.CreateNewMdOps(level, DataProtocol.DEFAULT_PROTOCOL)); MdAccess.SetLocator(manager.LocateMdOps); var dbResult = FileSystem.GetOrAdd(root); return(dbResult); }
public static async Task <Result <Database> > CreateForApp(SafeApp.Session session, string appId, string databaseId) { var manager = new MdHeadManager(session, appId, DataProtocol.DEFAULT_PROTOCOL); await manager.InitializeManager(); MdAccess.SetCreator((level) => manager.CreateNewMdOps(level, DataProtocol.DEFAULT_PROTOCOL)); MdAccess.SetLocator(manager.LocateMdOps); var indexerDbId = $"{databaseId}_indexer"; var indexerMdHead = await manager.GetOrAddHeadAsync(indexerDbId); var indexer = await Indexer.GetOrAddAsync(indexerMdHead); var databaseMdHead = await manager.GetOrAddHeadAsync(databaseId); var dbResult = await Database.GetOrAddAsync(databaseMdHead, indexer); return(dbResult); }