| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- using qdr.app.studiou.orders2printpack.Properties;
- using System.IO.Abstractions;
- namespace qdr.app.studiou.orders2printpack
- {
- public partial class FormDigitalSend : Form
- {
- #region *** Cnstants ***
- private const string CS_DigitalDirSent = ".sent";
- private const string CS_DigitalDirTemp = ".temp";
- private const string CS_DigitalMetadata = "metadata.json";
- #endregion
- #region *** Fields ***
- private IFileSystem _fileSystem = new FileSystem();
- private string? _openedDigitalDir = null;
- private string? _openedDigitalDirSent = null;
- private string? _openedDigitalDirTemp = null;
- #endregion
- #region *** Constructors ***
- public FormDigitalSend()
- {
- InitializeComponent();
- }
- #endregion
- #region *** Form Handlers ***
- private void mmOpenDir_Click(object sender, EventArgs e)
- {
- dlgOpenDir.Description = "Otevřít další složku s digitálním obsahem ...";
- dlgOpenDir.UseDescriptionForTitle = true;
- dlgOpenDir.InitialDirectory = AppSettings.Default.LastDigitalDir;
- if (dlgOpenDir.ShowDialog() == DialogResult.OK)
- {
- AppSettings.Default.LastDigitalDir = dlgOpenDir.SelectedPath;
- AppSettings.Default.Save();
- OpenDigitalDir(_openedDigitalDir);
- }
- }
-
- private void mmSend_Click(object sender, EventArgs e)
- {
- }
- #endregion
- #region *** Private Methods ***
- #region **** Error Handling *****
- private void BlockErrorHandled(Action block)
- {
- try
- {
- block();
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
- RefreshToolButtons();
- }
- }
- #endregion
- #region **** Refresh UI *****
- private void RefreshToolButtons()
- {
- throw new NotImplementedException();
- }
- #endregion
- #region **** Digital Directory Operations *****
- private void OpenDigitalDir(string selectedPath)
- {
- BlockErrorHandled(()=>{
- EnsureDigitalDirStructureExists(selectedPath);
-
- });
- }
- private void EnsureDigitalDirStructureExists(string selectedPath)
- {
- if (string.IsNullOrEmpty(selectedPath) || !_fileSystem.Directory.Exists(selectedPath))
- {
- throw new DirectoryNotFoundException($"Adresář '{selectedPath}' neexistuje.");
- }
- _openedDigitalDir = selectedPath;
- _openedDigitalDirSent = _fileSystem.Path.Combine(selectedPath, CS_DigitalDirSent);
- _openedDigitalDirTemp = _fileSystem.Path.Combine(selectedPath, CS_DigitalDirTemp);
- if (!_fileSystem.Directory.Exists(_openedDigitalDirSent))
- {
- _fileSystem.Directory.CreateDirectory(_openedDigitalDirSent);
- Log($"Vytvořen adresář pro odeslaná data '{_openedDigitalDirSent}'");
- }
- if (!_fileSystem.Directory.Exists(_openedDigitalDirTemp))
- {
- _fileSystem.Directory.CreateDirectory(_openedDigitalDirTemp);
- Log($"Vytvořen pracovní adresář '{_openedDigitalDirTemp}'");
- }
- EnsureDigitalMetadataExists(selectedPath);
- }
- private void EnsureDigitalMetadataExists(string selectedPath)
- {
- var metadataFilePath = _fileSystem.Path.Combine(selectedPath, CS_DigitalMetadata);
- if (!_fileSystem.File.Exists(metadataFilePath))
- {
- RefreshMetadataFile(metadataFilePath);
- }
- }
- private void RefreshMetadataFile(string metadataFilePath)
- {
- Log($"Aktualizuji soubor s metadaty '{metadataFilePath}'...");
- var metadata = new EmailStorage.Metadata();
- _fileSystem.File.WriteAllText(metadataFilePath, System.Text.Json.JsonSerializer.Serialize(metadata, new System.Text.Json.JsonSerializerOptions { WriteIndented = true }));
- Log($"Soubor s metadaty '{metadataFilePath}' byl vytvořen.");
- }
- #endregion
- #region **** Logging *****
- private void LogBreak()
- {
- Log(new string('-', 80));
- }
- private void LogCaption(string message)
- {
- Log($"*** {message} ***");
- }
- private void LogError(string message)
- {
- Log($"[ERROR] {message}");
- }
- private void Log(string message)
- {
- lbLog.BeginUpdate();
- lbLog.Items.Insert(0, message);
- lbLog.EndUpdate();
- }
- #endregion
- #endregion
- }
- }
|