Ejemplo n.º 1
0
        internal async Task HandleFileAsync(ControllerParameter parameter)
        {
            var profile = parameter.SenderProfile;
            var handler = NewFileReceiver;

            if (profile == null || handler == null || parameter.ConnectionType != LinkConnectionType.Tcp)
            {
                return;
            }
            var data   = parameter.Packet.Data;
            var name   = data["name"].As <string>();
            var length = data["length"].As <long>();

            using (var receiver = new FileReceiver(this, profile, parameter.Stream, name, length))
            {
                await parameter.ResponseAsync(new { status = "wait" });
                await UpdateUIAsync(() => handler.Invoke(receiver));

                await receiver.LoopAsync();
            }
        }
Ejemplo n.º 2
0
        private async Task HandleFileAsync(IRequest parameter)
        {
            var profile = parameter.SenderProfile;
            var handler = NewFileReceiver;

            if (profile == null || handler == null || parameter.NetworkType != NetworkType.Tcp)
            {
                return;
            }
            var data   = parameter.Packet.Data;
            var name   = data["name"].As <string>();
            var length = data["length"].As <long>();

            using (var receiver = new FileReceiver(this.context, profile, parameter.Stream, name, length))
            {
                await parameter.ResponseAsync(new { status = "wait" });

                await this.dispatcher.InvokeAsync(() => handler.Invoke(receiver));

                await receiver.LoopAsync();
            }
        }