PackageContext
using System;
using System.Collections.Generic;
namespace Relativity.Transfer
{
public sealed class PackageContext
{
public PackageConfiguration Configuration { get; }
public IDictionary<string, object> Metadata { get; }
public event EventHandler<PackagingFileMetadataEventArgs> PackagingFile = delegate {
};
public event EventHandler<PackageProgressEventArgs> PackageProgress = delegate {
};
public event EventHandler<PackageEventArgs> PackageCreated = delegate {
};
public PackageContext(PackageConfiguration configuration)
: this(configuration, new Dictionary<string, object>())
{
}
public PackageContext(PackageConfiguration configuration, IDictionary<string, object> metadata)
{
if (configuration == null)
throw new ArgumentNullException("configuration");
if (metadata == null)
throw new ArgumentNullException("metadata");
Configuration = configuration;
Metadata = metadata;
}
public void PublishPackageCreated(ITransferRequest request, string file)
{
if (request == null)
throw new ArgumentNullException("request");
if (string.IsNullOrEmpty(file))
throw new ArgumentNullException("file");
this.PackageCreated(this, new PackageEventArgs(request, file));
}
public void PublishPackagingFile(ITransferRequest request, PackageFileMetadata sourceMetadata, string targetPackageFile)
{
if (request == null)
throw new ArgumentNullException("request");
if (sourceMetadata == null)
throw new ArgumentNullException("sourceMetadata");
if (string.IsNullOrEmpty(targetPackageFile))
throw new ArgumentNullException("targetPackageFile");
this.PackagingFile(this, new PackagingFileMetadataEventArgs(request, sourceMetadata, targetPackageFile));
}
public void PublishPackageProgress(ITransferRequest request, long packagedSourceFiles, long sourceFiles)
{
if (request == null)
throw new ArgumentNullException("request");
this.PackageProgress(this, new PackageProgressEventArgs(request, packagedSourceFiles, sourceFiles));
}
}
}