private async Task RemoteRecord(RecordCommand command)
 {
     _heartbeat.Disable();
     var uploader = new FrameUploader(_listener.LocalHost.ToString(), command.Address, command.Port);
     _model.FramesProcessed += uploader.Upload;
     uploader.UploadComplete += () => { _model.FramesProcessed -= uploader.Upload; };
     await Dispatch(() => _model.Record.Execute(null));
     _heartbeat.Enable(TimeSpan.FromSeconds(3));
 }
        private async Task RemoteRecord(RecordCommand command)
        {
            await ReportState(CameraClientState.Preparing);

            var uploader = new FrameUploader(_listener.LocalHost.ToString(), command.Address, command.Port);

            _model.FramesProcessed  += uploader.Upload;
            uploader.UploadComplete += () =>
            {
                _model.FramesProcessed -= uploader.Upload;
                State = CameraClientState.Idle;
            };

            await Dispatch(() => { _model.Record.Execute(null); });
        }
        private async Task RemoteRecord(RecordCommand command)
        {
            await ReportState(CameraClientState.Preparing);

            var uploader = new FrameUploader(_listener.LocalHost.ToString(), command.Address, command.Port);
            _model.FramesProcessed += uploader.Upload;
            uploader.UploadComplete += () =>
            {
                _model.FramesProcessed -= uploader.Upload;
                State = CameraClientState.Idle;
            };

            await Dispatch(() => { _model.Record.Execute(null); });
        }