Example #1
0
        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);
                }
            }
        }
Example #2
0
        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);
                    }
                }
            }
        }