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); }
public LocalDbClient() { MdAccess.SetCreator((level) => Task.FromResult(LocalMd.Create(level))); MdAccess.SetLocator((locator) => Task.FromResult(Result.OK(LocalMd.Locate(locator)))); }