HttpTransferIssueBuilder
class HttpTransferIssueBuilder : TransferIssueBuilder, IHttpTransferIssueBuilder, ITransferIssueBuilder
using Relativity.Transfer.Http.Paths;
using Relativity.Transfer.Issues;
using Relativity.Transfer.Paths;
using System;
namespace Relativity.Transfer.Http.Issues
{
internal class HttpTransferIssueBuilder : TransferIssueBuilder, IHttpTransferIssueBuilder, ITransferIssueBuilder
{
private readonly IPathStatusChecker pathStatusChecker;
private readonly IHttpPathStatusResolver pathStatusResolver;
public HttpTransferIssueBuilder(IPathStatusChecker pathStatusChecker, IHttpPathStatusResolver pathStatusResolver)
{
this.pathStatusResolver = pathStatusResolver;
this.pathStatusChecker = pathStatusChecker;
}
public IHttpTransferIssueBuilder CreateFromException(TransferPath path, Exception exception)
{
TransferIssue.Message = HttpErrorCodes.GetErrorMessage(exception);
TransferIssue.Code = HttpErrorCodes.GetErrorCode(exception);
TransferPathStatus status = pathStatusResolver.Resolve(exception);
TransferIssue.IsRetryable = pathStatusChecker.IsRetrayable(status);
TransferIssue.Path = path;
return this;
}
}
}