Anul 3 Semestrul 2
This commit is contained in:
+36
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user