Anul 3 Semestrul 2

This commit is contained in:
2025-07-03 20:56:38 +03:00
parent 184f3bd92e
commit 3b7fb85767
269 changed files with 20955 additions and 0 deletions
@@ -0,0 +1,36 @@
using System;
using FileCompression.Interfaces;
namespace FileCompression.Services.Strategies;
public class StrategyContext
{
private ICompressionStrategy? _compressionStrategy;
public StrategyContext()
{
}
public StrategyContext(ICompressionStrategy compressionStrategy)
{
_compressionStrategy = compressionStrategy;
}
public void SetStrategy(ICompressionStrategy compressionStrategy)
{
_compressionStrategy = compressionStrategy;
}
public void CompressFile(string sourcePath, string destinationPath, string basePath)
{
if (_compressionStrategy == null)
{
throw new InvalidOperationException("Compression strategy is not set.");
}
_compressionStrategy.CompressFile(sourcePath, destinationPath, basePath);
}
public void CompressDirectory(string sourcePath, string destinationPath, string basePath)
{
if (_compressionStrategy == null)
{
throw new InvalidOperationException("Compression strategy is not set.");
}
_compressionStrategy.CompressDirectory(sourcePath, destinationPath, basePath);
}
}