public void CreateAllFiles(string directory, IFileExtensionFactory extensionFactory) { IOUtils.TryDeleteAllFilesInDirectory(directory); var serializer = new FileStringSerializer(); foreach (var file in Files.Descriptors) { var extensionInfo = extensionFactory.GetExtension(file.Key.TargetDeviceId, file.Key.FileType); var fileName = $"V{file.Key.FileFormatVersion}{extensionInfo.Extension}"; var path = Path.Combine(directory, fileName); var serialized = serializer.Serialize(file.Value.Descriptors.Select(d => d.FileDefaultDataEntity)); try { using (var stream = new StreamWriter(IOUtils.TryCreateFileOrNull(path))) { stream.Write(serialized); } } catch (Exception ex) { Logger.LogError(null, $"Не удалось создать или сохранить файл по пути: {path}", ex); } } }
protected byte[] deserialize(string file, FileType fileType) { var fileSerializer = new FileStringSerializer(); return(fileSerializer .Deserialize(file, fileType, Id) .Select(e => e.RawValue) .Flatten() .ToArray()); }
public void SeamlessSerialization_EmptyIncTCalFile_Test() { var serializer = new FileStringSerializer(); var deserialized = serializer.Deserialize( DeviceBaseTests.Properties.Resources.EmptyInclinometrTCal_V7_0_0, FileType.TEMPERATURE_CALIBRATION, 0b00000011); var serialized = serializer.Serialize(deserialized); Assert.AreEqual(DeviceBaseTests.Properties.Resources.EmptyInclinometrTCal_V7_0_0, serialized); }
public async Task SaveCalibrationFileAsync(FileType fileType, IEnumerable <IDataEntity> dataEntities) { await ThreadingUtils.ContinueAtThreadPull(); var serialized = new FileStringSerializer().Serialize(dataEntities); if (serialized != null) { var extensionInfo = _extensionFactory.GetExtension(_deviceId, fileType); var path = IOUtils.RequestFileSavingPath(extensionInfo.FileExtensionFilter); if (path != null) { try { File.WriteAllText(path, serialized); } catch (Exception ex) { Logger.LogErrorEverywhere($"Не удалось сохранить файл на диск", ex); } } } }