private async Task<Errorable<Stage>> persistStage(Stage stg) { FileInfo tmpFile = system.getTemporaryFile(); using (var fs = new FileStream(tmpFile.FullName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None, bufferSize: 16386, useAsync: true)) { await fs.WriteRawAsync(stg.WriteTo(new StringBuilder()).ToString()); } lock (FileSystem.SystemLock) { FileInfo fi = system.getStagePathByStageName(stg.Name); if (fi.Exists) fi.Delete(); // Create directory if it doesn't exist: if (!fi.Directory.Exists) { Debug.WriteLine(String.Format("New DIR '{0}'", fi.Directory.FullName)); fi.Directory.Create(); } // Write the contents to the file: Debug.WriteLine(String.Format("New STAGE '{0}'", fi.FullName)); File.Move(tmpFile.FullName, fi.FullName); } return stg; }
public Builder(Stage imm) { this.Name = imm.Name; this.TreeID = imm.TreeID; }
public Task<Errorable<Stage>> PersistStage(Stage stg) { persistStage(stg); return Task.FromResult((Errorable<Stage>)stg); }
public Task<Errorable<Stage>> PersistStage(Stage stg) { throw new NotImplementedException(); }