EasySave v3.0
Loading...
Searching...
No Matches
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 CApplication
 CEasySave.Gui.AppAvalonia application class for the EasySave GUI. Responsible for loading XAML resources and wiring the main window
 CEasySave.Core.Entities.BackupConfigurationGlobal configuration: list of jobs and paths for log/state files
 CEasySave.Core.Models.BackupEnumerationOptionsOptions applied during backup file enumeration
 CEasySave.Core.Entities.BackupJobBackup job
 CEasySave.Core.Entities.BackupProgressBackup job progress (for the real-time status file)
 CEasySave.Console.EasySavePathsPaths used by EasySave for config, state and log files (for display in TUI "View paths")
 CEasySave.Gui.EasySavePathsProvides strongly-typed paths used by the EasySave GUI for configuration, state and log files
 CEasySave.Gui.Services.IAudiodescription
 CEasySave.Gui.Services.Audiodescription
 CEasySave.Core.Interfaces.IBackupExecutorExecutes one or more backup jobs. When multiple job identifiers are provided, jobs run in parallel; when a single job is provided, it runs alone (same behavior as before). Depends on strategies, the FileSystem, the StateWriter, and logging (injected). Supports cooperative cancellation
 CEasySave.Infrastructure.Backup.BackupExecutorExecutes backup jobs in parallel when multiple are selected, otherwise runs a single job. Logging, real-time state, full/differential strategy. Progress by size (bytes) with ETA and report during file copy. Blocks start and stops during backup when business software is detected. State and log writes are coordinated so that the state file and logs remain consistent when several jobs run concurrently
 CEasySave.Gui.Services.IBackupProgressAggregatorAggregates raw BackupProgress reports into a stable list of JobProgressViewModel for display (one entry per job). Single responsibility: progress-to-view adaptation (Adapter pattern)
 CEasySave.Gui.Services.BackupProgressAggregatorAdapts BackupProgress reports into a list of JobProgressViewModel for the GUI. Maintains one view model per job name (by ordinal-ignore-case key) so that parallel jobs each have a stable row
 CEasySave.Core.Interfaces.IBackupStrategyDefines the filtering of eligible files (complete vs differential)
 CEasySave.Infrastructure.Backup.DifferentialBackupStrategyDifferential backup strategy: only files modified since the last full backup
 CEasySave.Infrastructure.Backup.FullBackupStrategyFull backup strategy: all files are eligible
 CEasySave.Core.Interfaces.IBackupStrategyFactoryProvides the appropriate backup strategy based on the specified backup type
 CEasySave.Infrastructure.Backup.BackupStrategyFactorySimple factory that returns the right IBackupStrategy implementation for a BackupType
 CEasySave.Core.Interfaces.IBusinessSoftwareDetectorDetects whether a configured "business software" process is currently running. Used to block backup start and to stop after the current file during backup
 CEasySave.Infrastructure.Backup.BusinessSoftwareDetectorDetects if a process with the given name is running (e.g. Calculator for demos). Matches by process name (case-insensitive); ".exe" suffix in config is stripped for comparison
 CEasySave.Core.Interfaces.ICentralizedLogClientPort for sending log entries to a centralized log server. Implementations (adapters) must not throw: network errors must be handled without failing the backup
 CEasySave.Infrastructure.Logging.CentralizedLogClientAdapter: sends log entries to the centralized log server via TCP (newline-delimited JSON). Does not throw: all exceptions are caught so that backup execution is never failed by log sending
 CEasySave.Gui.Services.IConfigurationHolderHolds the current backup configuration in memory as a single source of truth, shared across all tabs for smooth navigation without reloading from disk
 CEasySave.Gui.Services.ConfigurationHolderDefault implementation of IConfigurationHolder, keeping the current configuration in memory and delegating persistence to IConfigurationRepository
 CEasySave.Core.Interfaces.IConfigurationRepositoryDefines methods for loading and saving the backup configuration, including the list of jobs, log/status directory, and the date of the last full backup for each job
 CEasySave.Infrastructure.Persistence.JsonConfigurationRepositoryLoads and saves the application configuration in JSON format. No hard-coded paths: the configuration directory is injected
 CEasySave.Gui.Services.IConfirmationService
 CEasySave.Gui.Services.MessageBoxConfirmationService
 CIDisposable
 CEasyLog.DailyLogWriterDailyLogWriter is responsible for writing log entries to daily log files in JSON format. Each daily file contains a single JSON array with one object per log entry
 CEasyLog.XmlDailyLogWriterWrites log entries to a daily XML file (yyyy-MM-dd.xml). The file contains a logEntries root element with one logEntry element per write
 CEasySave.Core.Interfaces.IFileEncryptorEncrypts a file using an external process (e.g. CryptoSoft). Follows Strategy pattern: the backup executor can use this instead of a plain copy for files whose extension is in the encryption list
 CEasySave.Infrastructure.Encryption.CryptoSoftFileEncryptorAdapter for the external CryptoSoft executable: encrypts a file by launching a process with arguments (source path, destination path, key file path). Exit code: -1 invalid args, -4 failure, otherwise milliseconds on success
 CEasySave.Gui.Services.IFilePickerServiceService abstraction that opens a file picker dialog (MVVM-friendly and testable)
 CEasySave.Gui.Services.FilePickerServiceDefault implementation of IFilePickerService using Avalonia's IStorageProvider to display a native file picker dialog. No file type filter is applied
 CEasySave.Core.Interfaces.IFileSystemServiceDefines operations for interacting with the file system. Acts as an abstraction layer to handle file enumeration, copying, and metadata retrieval
 CEasySave.Infrastructure.FileSystem.FileSystemServiceImplementation of file system operations (local, external, network)
 CEasySave.Gui.Services.IFolderPickerServiceService abstraction that opens a folder picker dialog (MVVM-friendly and testable)
 CEasySave.Gui.Services.FolderPickerServiceDefault implementation of IFolderPickerService using Avalonia's IStorageProvider to display a native folder picker dialog
 CEasySave.Gui.Services.ILocalizationProviderProvides localized UI strings for the GUI (inversion of control abstraction)
 CEasySave.Gui.Services.LocalizationProviderDefault implementation of ILocalizationProvider using strongly-typed access to ResX resources embedded in the GUI assembly
 CEasySave.LogServer.Protocol.ILogEntryHandlerDefines the contract for handling a single received log entry (validation and persistence). Allows the socket layer to remain agnostic of storage (Dependency Inversion)
 CEasySave.LogServer.Protocol.LogEntryHandlerHandles received log DTOs: validates and forwards them to the configured ILogWriter. Converts LogEntryDto to LogEntry for storage (Adapter pattern)
 CEasyLog.ILogWriterPublic contract for a log writer. Implementations write a log entry asynchronously
 CEasyLog.DailyLogWriterDailyLogWriter is responsible for writing log entries to daily log files in JSON format. Each daily file contains a single JSON array with one object per log entry
 CEasyLog.XmlDailyLogWriterWrites log entries to a daily XML file (yyyy-MM-dd.xml). The file contains a logEntries root element with one logEntry element per write
 CEasySave.Infrastructure.Persistence.ConfigurableLogWriterILogWriter implementation that dynamically selects the log format (JSON or XML) based on the application configuration (BackupConfiguration.LogFileFormat)
 CEasySave.Infrastructure.Persistence.DestinationLogWriterILogWriter that routes log entries according to BackupConfiguration.LogDestination: local only, centralized server only, or both. Local writing is delegated to the configured format writer (JSON/XML). Centralized sending never throws so that backup execution is not failed by network errors
 CINotifyPropertyChanged
 CEasySave.Gui.ViewModels.ViewModelBaseBase class for all ViewModels providing property change notification (MVVM)
 CEasySave.Gui.ViewModels.CreateEditJobViewModelViewModel for the create/edit tab: allows creating a new job or editing an existing one through a form
 CEasySave.Gui.ViewModels.JobItemViewModelLightweight view model used to display a backup job in lists (separating presentation from domain entities)
 CEasySave.Gui.ViewModels.JobProgressViewModelView model for a single job's progress in the GUI (name, percent, files, size, ETA, current file). Used as the data item for each row in the multi-job progress list (Composite display)
 CEasySave.Gui.ViewModels.JobsTabViewModelViewModel for the jobs tab: listing, details and execution of backup jobs
 CEasySave.Gui.ViewModels.MainWindowViewModelViewModel for the main window: header texts and tab view models. Contains orchestration logic only, no business rules
 CEasySave.Gui.ViewModels.SettingsViewModelViewModel for the settings tab: shows the important paths and allows changing the log format
 CInvalidOperationException
 CEasySave.Core.Exceptions.BusinessSoftwareDetectedExceptionThrown when backup cannot start because the configured business software process is detected as running
 CEasySave.Core.Interfaces.IPriorityTransferGateCoordinates transfer order across multiple backup jobs so that the global priority rule is respected: as long as any job has a priority file pending, no job may transfer a non-priority file. Used only when several jobs run in parallel. Single-job execution does not require a gate
 CEasySave.Infrastructure.Backup.PriorityTransferGateThread-safe implementation of IPriorityTransferGate. Tracks per-job priority file counts and signals waiters when the total pending priority count reaches zero
 CEasySave.Core.Interfaces.IStateWriterDefines the contract for writing the real-time state of backup jobs to a persistence medium (e.g., a single JSON file)
 CEasySave.Infrastructure.Persistence.JsonStateWriterImplementation of IStateWriter that writes backup jobs state to a JSON file
 CEasySave.Console.Resources.LangHelperThis class handles language management
 CEasySave.Core.Models.LogEntryRepresents a single backup log entry for EasySave
 CEasySave.LogServer.Protocol.LogEntryDtoData transfer object for a log entry received over the wire. Mirrors EasySave.Core.Models.LogEntry with settable properties for JSON deserialization. TimeSpan is sent as total milliseconds (long)
 CEasySave.LogServer.Sockets.LogSocketListenerListens for incoming TCP connections and processes newline-delimited JSON log entries per line. One connection can send multiple lines; each line is one JSON LogEntryDto. Sends "OK" or "ERR" per line (synchronous response per log entry)
 CEasySave.Gui.MutableEasySavePathsMutable version of EasySavePaths allowing to change the base directory at runtime. When changing the path, existing configuration, state and log files are copied to the new location so that no data is lost
 CProgram
 CWindow
 CEasySave.Gui.MainWindowMain window view: contains only generated XAML content, the DataContext is provided by App (pure MVVM)