TransferRequestConfiguration
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace Relativity.Transfer
{
[Serializable]
public sealed class TransferRequestConfiguration : Dictionary<string, object>
{
public const TransferDirection DefaultDirection = TransferDirection.Upload;
public const string DefaultName = "transfer-api";
public const bool DefaultRemotePathsInUncFormat = true;
public const double DefaultRetryWaitTimeSeconds = 0;
public const bool DefaultSubmitApmMetrics = true;
public const string DefaultTargetPath = null;
public string Application {
get {
return this.GetStringValue("application", null);
}
set {
base["application"] = value;
}
}
public Guid? ClientRequestId {
get {
return this.GetNullableGuidValue("client-request-id", null);
}
set {
base["client-request-id"] = value;
}
}
public TransferDirection Direction {
get {
return this.GetEnumValue("direction", TransferDirection.Upload);
}
set {
base["direction"] = value;
}
}
public Guid? JobId {
get {
return this.GetNullableGuidValue("job-id", null);
}
set {
base["job-id"] = value;
}
}
public string Name {
get {
return this.GetStringValue("name", "transfer-api");
}
set {
base["name"] = value;
}
}
public bool RemotePathsInUncFormat {
get {
return this.GetBooleanValue("remote-paths-in-unc-format", true);
}
set {
base["remote-paths-in-unc-format"] = value;
}
}
public double RetryWaitTimeSeconds {
get {
return this.GetDoubleValue("retry-wait-time-seconds", 0);
}
set {
base["retry-wait-time-seconds"] = value;
}
}
public bool SubmitApmMetrics {
get {
return this.GetBooleanValue("submit-apm-metrics", false);
}
set {
base["submit-apm-metrics"] = value;
}
}
public string TargetPath {
get {
return this.GetStringValue("target-path", null);
}
set {
base["target-path"] = value;
}
}
public TransferRequestConfiguration()
{
Initialize(true);
}
public TransferRequestConfiguration(IDictionary<string, object> dictionary)
: base(dictionary)
{
Initialize(false);
}
private TransferRequestConfiguration(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
public void Copy(IDictionary<string, object> properties)
{
Copy(properties, true);
}
public void Copy(IDictionary<string, object> properties, bool overwrite)
{
if (properties == null)
throw new ArgumentNullException("properties");
foreach (KeyValuePair<string, object> property in properties) {
if (overwrite || !ContainsKey(property.Key))
base[property.Key] = property.Value;
}
}
private void Initialize(bool overwrite)
{
Dictionary<string, object> properties = new Dictionary<string, object> {
{
"application",
null
},
{
"client-request-id",
null
},
{
"direction",
TransferDirection.Upload
},
{
"job-id",
null
},
{
"name",
"transfer-api"
},
{
"retry-wait-time-seconds",
0
},
{
"submit-apm-metrics",
true
},
{
"target-path",
null
}
};
Copy(properties, overwrite);
}
}
}