public async Task <IMdNode> CreateNewMdNodeAsync(MdMetadata metadata) { var mdInfo = await _networkOps.CreateEmptyMd(DataProtocol.DEFAULT_AD_PROTOCOL).ConfigureAwait(false); var dataOps = new MdDataOps(this, _networkOps, mdInfo); var newMd = new MdNode(dataOps, _snapshotter); await newMd.Initialize(metadata).ConfigureAwait(false); return(newMd); }
public async Task <Result <IMdNode> > LocateAsync(MdLocator location) { // var mdResult = await networkDataOps.LocatePublicMd(location.XORName, location.TypeTag); var mdResult = await _networkOps.LocatePrivateMd(location.XORName, location.TypeTag, location.SecEncKey, location.Nonce) .ConfigureAwait(false); if (!mdResult.HasValue) { return(new KeyNotFound <IMdNode>($"Could not locate md: {location.TypeTag}, {location.XORName}")); } var mdInfo = mdResult.Value; var dataOps = new MdDataOps(this, _networkOps, mdInfo); var md = new MdNode(dataOps, _snapshotter); await md.Initialize(metadata : null).ConfigureAwait(false); return(Result.OK((IMdNode)md)); }