/// <summary> /// Создание дампа /// </summary> /// <param name="dataSet"></param> /// <param name="archiver"></param> /// <param name="filePath"></param> /// <returns></returns> public virtual bool CreateDumpFile(DataSet dataSet, IArchiver archiver = null, string filePath = null) { try { string basePath = AppDomain.CurrentDomain.BaseDirectory; if (!string.IsNullOrEmpty(filePath)) { basePath = Path.GetDirectoryName(filePath); if (basePath == null) { throw new Exception("Не удалось получить директорию для произвольного пути..."); } } var directory = new DirectoryInfo(Path.Combine(basePath, SyncSettings.TempFolderName)); //директория по умолчанию if (!directory.Exists) //если папки нет, создаю { directory.Create(); } if (filePath == null) { filePath = Path.Combine(basePath, SyncSettings.ExportFileName); } var jsonPath = Path.Combine(directory.FullName, string.Concat(Path.GetFileNameWithoutExtension(filePath), SyncSettings.DataSerializer.FileExtenssion)); SyncSettings.DataSerializer.SerializeData(dataSet, jsonPath); if (!File.Exists(jsonPath)) { throw new Exception("Нет данных для сериализации"); } if (archiver != null) { archiver.CompressDir(new FileInfo(filePath), directory); directory.Delete(true); } } catch (Exception ex) { SyncContext.Logger.Error(ex); Out(ex.ToString()); return(false); } return(true); }