private IObservable <Tuple <string, string> > OpenFiles(string[] fileNames) { return(ObservableEx.Create <Tuple <string, string> >(async(observer, ct) => { try { IsProcessing = true; foreach (var name in fileNames) { if (ct.IsCancellationRequested) { return; } using (var stream = new System.IO.FileStream(name, System.IO.FileMode.Open, System.IO.FileAccess.Read)) { var bytes = await stream.ReadBytesAsync().ConfigureAwait(false); var text = bytes.GetCode().GetString(bytes); observer.OnNext(Tuple.Create(System.IO.Path.GetFileName(name), text)); } } observer.OnCompleted(); } catch (Exception e) { observer.OnError(e); } finally { IsProcessing = false; } })); }
private async void FileOpened(string[] fileNames) { if (fileNames.Length > 1) { _selectedFiles = fileNames; var names = fileNames.Select(s => "\"" + System.IO.Path.GetFileName(s) + "\""); UploadFileName = names.Aggregate((a, b) => a + " " + b); Text = "*** Selected Files ***" + Environment.NewLine + names.Aggregate((a, b) => a + Environment.NewLine + b) + Environment.NewLine; UploadFileDescription = "gist description..."; return; } _selectedFiles = null; var filename = fileNames.FirstOrDefault(); if (string.IsNullOrEmpty(filename)) { return; } UploadFileName = System.IO.Path.GetFileName(filename); using (var stream = new System.IO.FileStream(filename, System.IO.FileMode.Open, System.IO.FileAccess.Read)) { var bytes = await stream.ReadBytesAsync().ConfigureAwait(false); Text = bytes.GetCode().GetString(bytes); } }
private IObservable<Tuple<string, string>> OpenFiles(string[] fileNames) { return ObservableEx.Create<Tuple<string, string>>(async (observer, ct) => { try { IsProcessing = true; foreach (var name in fileNames) { if (ct.IsCancellationRequested) { return; } using (var stream = new System.IO.FileStream(name, System.IO.FileMode.Open, System.IO.FileAccess.Read)) { var bytes = await stream.ReadBytesAsync().ConfigureAwait(false); var text = bytes.GetCode().GetString(bytes); observer.OnNext(Tuple.Create(System.IO.Path.GetFileName(name), text)); } } observer.OnCompleted(); } catch (Exception e) { observer.OnError(e); } finally { IsProcessing = false; } }); }