public List <T> ImportFromFileToMemory <T>(string path, IErrorHandler errorHandler = null) { JobSettings settings = new JobSettings { Tables = new List <Table>(), AuditColumns = new JobSettings.AuditSettings(), IgnoreAuditColumnsOnExport = true, UseAuditColumnsOnImport = false, Path = Path.GetDirectoryName(path) }; errorHandler = errorHandler ?? new DefaultErrorHandler(); Table table = new Table(); table.Name = typeof(T).Name; table.Initialize <T>(settings, errorHandler); var diffGenerator = new DiffGenerator(); using (var target = new EmptyDataReader(table)) using (var source = new XmlRecordDataReader(path, table)) using (var writer = new InMemoryDataWriter <T>(table)) { diffGenerator.GenerateDifference(source, target, table, writer, settings); return(writer.Data); } }
private void LoadLoggers() { WriteChosenComponents(); ComponentDataReader dateTimeReader, hdDataReader, dvdStatusDataReader, memoryDataReader, cpuDataReader, ethDataReader, wifiDataReader, lcdDataReader, cpuCoolerDataReader; dateTimeReader = new CurrentTimeDataReader(); if (CPUFreqCheckBox.Checked) { cpuDataReader = new ProcessorDataReaderOHM(computer); } else { cpuDataReader = new EmptyDataReader(); } if (LCDBrightnessCheckBox.Checked) { lcdDataReader = new LCDDataReader(); } else { lcdDataReader = new EmptyDataReader(); } if (HDCheckBox.Checked) { hdDataReader = new HardDiskDataReader((string)hdUnitComboBox.SelectedItem, "HD"); } //hdDataReader = new HardDiskDataReaderOHM(computer); else { hdDataReader = new EmptyDataReader(); } bool dvdIO, dvdStatus; dvdIO = DVDCheckBox.Checked; dvdStatus = DVDStateCheckBox.Checked; if ((!dvdIO) && (!dvdStatus)) { dvdStatusDataReader = new EmptyDataReader(); } else { dvdStatusDataReader = new DVDDriveDataReader(dvdIO, dvdStatus); } if (MemoryCheckBox.Checked) { //memoryDataReader = new MemoryDataReader(); memoryDataReader = new MemoryDataReaderOHM(computer); } else { memoryDataReader = new EmptyDataReader(); } bool logDownload = DownloadCheckBox.Checked; bool logUpload = UploadCheckBox.Checked; bool logNetworkStatus = NetworkStateCheckbox.Checked; if (hasEthLog) { ethDataReader = new NetworkDataReader((string)ethComboBox.SelectedItem, NetworkDeviceType.Ethernet, logDownload, logUpload, logNetworkStatus); } else { ethDataReader = new EmptyDataReader(); } if (hasWifiLog) { wifiDataReader = new NetworkDataReader((string)wifiComboBox.SelectedItem, NetworkDeviceType.Wireless, logDownload, logUpload, logNetworkStatus); } else { wifiDataReader = new EmptyDataReader(); } if (MotherBoardCB.Checked) { cpuCoolerDataReader = new MainBoardDataReaderOHM(computer); } else { cpuCoolerDataReader = new EmptyDataReader(); } dataReaders.Add(dateTimeReader); dataReaders.Add(cpuDataReader); dataReaders.Add(hdDataReader); dataReaders.Add(dvdStatusDataReader); dataReaders.Add(memoryDataReader); dataReaders.Add(lcdDataReader); dataReaders.Add(ethDataReader); dataReaders.Add(wifiDataReader); dataReaders.Add(cpuCoolerDataReader); writer.Write("#"); //beginning header foreach (ComponentDataReader dataReader in dataReaders) { writer.Write(dataReader.GetDataHeader()); } writer.WriteLine(); }