TransferIssue
using System;
namespace Relativity.Transfer
{
public class TransferIssue : ITransferIssue, IEquatable<ITransferIssue>
{
public IssueAttributes Attributes { get; set; }
public int? Code { get; set; }
public int Index { get; set; }
public int MaxRetryAttempts { get; set; }
public string Message { get; set; }
public TransferPath Path { get; set; }
public bool IsRetryable { get; set; }
public int RetryAttempt { get; set; }
public DateTime Timestamp { get; set; }
public TransferIssue()
{
Attributes = IssueAttributes.None;
Code = 0;
MaxRetryAttempts = 1;
Message = null;
Path = null;
RetryAttempt = 1;
Timestamp = DateTime.Now;
IsRetryable = true;
}
public TransferIssue(ITransferIssue issue)
{
if (issue == null)
throw new ArgumentNullException("issue");
Attributes = issue.Attributes;
Code = issue.Code;
MaxRetryAttempts = issue.MaxRetryAttempts;
Message = issue.Message;
Path = issue.Path;
RetryAttempt = issue.RetryAttempt;
Timestamp = issue.Timestamp;
IsRetryable = issue.IsRetryable;
}
public static bool operator ==(TransferIssue x, TransferIssue y)
{
if ((object)x != y) {
if ((object)x != null) {
if ((object)y != null) {
int? code = x.Code;
int? code2 = y.Code;
return ((code.GetValueOrDefault() == code2.GetValueOrDefault()) & (code.HasValue == code2.HasValue)) && x.Index == y.Index && x.Message == y.Message && x.Path == y.Path && x.Attributes == y.Attributes && x.IsRetryable == y.IsRetryable;
}
return false;
}
return false;
}
return true;
}
public static bool operator !=(TransferIssue x, TransferIssue y)
{
return !(x == y);
}
public override int GetHashCode()
{
int num = 0;
int num2 = num * 397;
int? code = Code;
int num3;
if (!code.HasValue)
num3 = 0;
else {
code = Code;
num3 = code.GetHashCode();
}
num = (num2 ^ num3);
int num4 = num * 397;
int num5 = Index;
num = (num4 ^ num5.GetHashCode());
int num6 = num * 397;
num5 = MaxRetryAttempts;
num = (num6 ^ num5.GetHashCode());
num = ((num * 397) ^ ((Message != null) ? Message.GetHashCode() : 0));
num = ((num * 397) ^ ((Path != (TransferPath)null) ? Path.GetHashCode() : 0));
int num7 = num * 397;
num5 = RetryAttempt;
num = (num7 ^ num5.GetHashCode());
num = ((num * 397) ^ Attributes.GetHashCode());
return (num * 397) ^ IsRetryable.GetHashCode();
}
public override bool Equals(object obj)
{
return Equals(obj as ITransferIssue);
}
public bool Equals(ITransferIssue other)
{
if (other != null) {
if (this != other) {
int? code = Code;
int? code2 = other.Code;
return ((code.GetValueOrDefault() == code2.GetValueOrDefault()) & (code.HasValue == code2.HasValue)) && Index == other.Index && Message == other.Message && Path == other.Path && Attributes == other.Attributes && IsRetryable == other.IsRetryable;
}
return true;
}
return false;
}
}
}