Example #1
0
        public async Task UploadFileAsync(string filename, Stream file, CancellationToken cancellationToken)
        {
            var buffer = new byte[500];
            int read;
            int offset = 0;

            while ((read = await file.ReadAsync(buffer, 0, buffer.Length, cancellationToken).ConfigureAwait(false)) != -1)
            {
                var request = new PutFile
                {
                    Name   = filename,
                    Offset = offset,
                    Data   = Convert.ToBase64String(buffer, 0, read),
                };
                await SendAsync <PutFile, PutFileResp>(request, cancellationToken).ConfigureAwait(false);

                offset += read;
            }
            var eof = new PutFile
            {
                Name   = filename,
                Offset = offset,
                Eof    = true
            };

            await SendAsync <PutFile, PutFileResp>(eof, cancellationToken).ConfigureAwait(false);
        }
Example #2
0
        public void CanSerializePutFile()
        {
            var putFile = new PutFile
            {
                Name   = ":license",
                Data   = "bnNlRmlsZT4=",
                Offset = 1000,
            };
            var xml = _serializer.Serialize(putFile);

            Assert.AreEqual("<PutFile name=\":license\" offset=\"1000\" data=\"bnNlRmlsZT4=\" />", xml);
            putFile = new PutFile
            {
                Name   = ":license",
                Eof    = true,
                Offset = 1008,
            };
            xml = _serializer.Serialize(putFile);
            Assert.AreEqual("<PutFile name=\":license\" offset=\"1008\" data=\"\" eof=\"true\" />", xml);
        }