コード例 #1
0
        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;
 }
コード例 #3
0
 public Task<Errorable<Stage>> PersistStage(Stage stg)
 {
     persistStage(stg);
     return Task.FromResult((Errorable<Stage>)stg);
 }
コード例 #4
0
 public Task<Errorable<Stage>> PersistStage(Stage stg)
 {
     throw new NotImplementedException();
 }