Beispiel #1
0
        private async Task UpdatePackageNode(string revisionLog)
        {
            var node = new R2Package
            {
                nid      = NODE_ID,
                Filename = NODE_TITLE,
                Hash     = F.ke.Text
            };
            //var list = await _pkgMgr.ListByFilename(NODE_TITLE, new CancellationToken());
            //list.Should().HaveCount(1);
            //var node  = list[0];
            //node.Hash = F.ke.Text;

            var reply = await _pkgMgr.UpdateRemoteNode(node, revisionLog, new CancellationToken());

            reply.IsSuccessful.Should().BeTrue(reply.ErrorsText);
        }
Beispiel #2
0
        private async Task <NodeReply> ExecuteUpload(R2Package localPkg, string revisionLog, CancellationToken cancelTkn)
        {
            SetStatus("Isolating local package file...");
            var pkgPath = await _fileIO.IsolateFile(localPkg);

            SetStatus("Compressing and splitting into parts...");
            var partPaths = await _archivr.CompressAndSplit(pkgPath, MaxPartSizeMB);

            await _fileIO.Delete(pkgPath);

            await _sendr.SendParts(partPaths, localPkg, cancelTkn);

            await _fileIO.Delete(partPaths);

            var newHash = await TryDownloadAndGetHash(localPkg, cancelTkn);

            if (newHash != localPkg.Hash)
            {
                throw Fault.HashMismatch("Original Package File", "Downloaded Package File");
            }

            SetStatus("Updating package node ...");
            return(await _pkgMgr.UpdateRemoteNode(localPkg, revisionLog, cancelTkn));
        }