public Task <Workbench> LoadWorkbenchAsync(IFile file) { var wp = new WorkbenchParser(); try { using (var stream = file.OpenForReading()) { return(Task.FromResult(wp.ReadFromStream(this, stream))); } } catch (Exception e) { Log.E(this, "Failed to load workbench. Creating a new one.", e); return(Task.FromResult(new Workbench(this))); } }
// Implemented from IION public virtual Task <Workbench> LoadWorkbenchAsync(IFile file) { // return Task.Factory.StartNew(() => { try { var parser = new WorkbenchParser(); using (var s = file.OpenForReading()) { return(Task.FromResult(parser.ReadFromStream(this, s))); } } catch (Exception e) { Log.E(this, "Failed to load workbench. Defaulting to a new one.", e); return(Task.FromResult(new Workbench(this))); } // }); }
// Implemented for IION public virtual Task SaveWorkbenchAsync() { return(Task.Factory.StartNew(() => { lock (locker) { var internalDirectory = fileManager.GetApplicationInternalDirectory(); var file = internalDirectory.GetFile(PRIMARY_WORKBENCH_FILENAME, EFileAccessResponse.CreateIfMissing); var parser = new WorkbenchParser(); try { using (var s = file.OpenForWriting()) { parser.WriteToStream(this, currentWorkbench, s); } } catch (Exception e) { Log.E(this, "Failed to write workbench to file", e); } } })); }