Inheritance: DomainHeaderBuilderBase
Example #1
0
    public async Task SaveUpkFile(DomainHeader Header, string Filename) {
      if (Header == null) return;

      foreach(DomainExportTableEntry export in Header.ExportTable.Where(export => export.DomainObject == null)) await export.ParseDomainObject(Header, false, false);

      FileStream stream = new FileStream(Filename, FileMode.Create);

      int headerSize = Header.GetBuilderSize();

      ByteArrayWriter writer = ByteArrayWriter.CreateNew(headerSize);

      await Header.WriteBuffer(writer, 0);

      await stream.WriteAsync(writer.GetBytes(), 0, headerSize);

      foreach(DomainExportTableEntry export in Header.ExportTable) {
        ByteArrayWriter objectWriter = await export.WriteObjectBuffer();

        await stream.WriteAsync(objectWriter.GetBytes(), 0, objectWriter.Index);
      }

      await stream.FlushAsync();

      stream.Close();
    }
    private void onFileLoaded(FileLoadedMessage message) {
      header = message.File.Header;

      viewModel.ExportTableEntries = new ObservableCollection<ExportTableEntryViewEntity>(mapper.Map<IEnumerable<ExportTableEntryViewEntity>>(message.File.Header.ExportTable));

      exportTableEntries.AddRange(message.File.Header.ExportTable);

      viewModel.ExportTableEntries.ForEach(export => export.PropertyChanged += onExportTableEntryPropertyChanged);
    }
Example #3
0
    public async Task<DomainHeader> LoadUpkFile(string Filename) {
      byte[] data = await Task.Run(() => File.ReadAllBytes(Filename));

      ByteArrayReader reader = ByteArrayReader.CreateNew(data, 0);

      DomainHeader header = new DomainHeader(reader) {
        FullFilename = Filename,
        FileSize     = data.LongLength
      };

      return header;
    }
    private void onFileLoading(FileLoadingMessage message) {
      tokenSource?.Cancel();

      viewModel.ObjectTree.Traverse(entity => entity.IsExport).ForEach(entity => entity.PropertyChanged -= onObjectTreeViewEntityPropertyChanged);

      viewModel.ObjectTree.Clear();

      header = null;

      imports = null;
      exports = null;
    }
    private void onFileLoaded(FileLoadedMessage message) {
      header = message.File.Header;

      imports = header.ImportTable.ToList();
      exports = header.ExportTable.ToList();

      Task.Run(() => buildObjectParents(resetToken())).FireAndForget();
    }