internal void OnTransferSuccess(TransferEventArgs eventArgs) { EventHandler <TransferEventArgs> handler = this.FileTransferred; if (handler != null) { handler(this, eventArgs); } }
internal void OnTransferFailed(TransferEventArgs eventArgs) { EventHandler <TransferEventArgs> handler = this.FileFailed; if (handler != null) { handler(this, eventArgs); } }
private void OnTransferFailed(TransferEventArgs eventArgs) { // transfer failed this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Failed); if (this.Context != null) { this.Context.OnTransferFailed(eventArgs); } }
public void OnTransferFailed(Exception ex) { TransferEventArgs eventArgs = new TransferEventArgs(this.Source.Instance, this.Destination.Instance); eventArgs.StartTime = DateTime.UtcNow; eventArgs.EndTime = DateTime.UtcNow; eventArgs.Exception = ex; this.OnTransferFailed(eventArgs); }
/// <summary> /// Execute the transfer asynchronously. /// </summary> /// <param name="scheduler">Transfer scheduler</param> /// <param name="cancellationToken">Token that can be used to cancel the transfer.</param> /// <returns>A task representing the transfer operation.</returns> public override async Task ExecuteAsync(TransferScheduler scheduler, CancellationToken cancellationToken) { if (this.transferJob.Status == TransferJobStatus.Finished || this.transferJob.Status == TransferJobStatus.Skipped) { return; } TransferEventArgs eventArgs = new TransferEventArgs(this.Source.ToString(), this.Destination.ToString()); eventArgs.StartTime = DateTime.UtcNow; if (this.transferJob.Status == TransferJobStatus.Failed) { // Resuming a failed transfer job if (string.IsNullOrEmpty(this.transferJob.CopyId)) { this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Transfer); } else { this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Monitor); } } try { await scheduler.ExecuteJobAsync(this.transferJob, cancellationToken); this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Finished); eventArgs.EndTime = DateTime.UtcNow; if (this.Context != null) { this.Context.OnTransferSuccess(eventArgs); } } catch (TransferException exception) { eventArgs.EndTime = DateTime.UtcNow; eventArgs.Exception = exception; if (exception.ErrorCode == TransferErrorCode.NotOverwriteExistingDestination) { // transfer skipped this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Skipped); if (this.Context != null) { this.Context.OnTransferSkipped(eventArgs); } throw; } else { // transfer failed this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Failed); if (this.Context != null) { this.Context.OnTransferFailed(eventArgs); } throw; } } catch (Exception ex) { eventArgs.EndTime = DateTime.UtcNow; eventArgs.Exception = ex; // transfer failed this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Failed); if (this.Context != null) { this.Context.OnTransferFailed(eventArgs); } throw; } }
internal void OnTransferFailed(TransferEventArgs eventArgs) { EventHandler<TransferEventArgs> handler = this.FileFailed; if (handler != null) { handler(this, eventArgs); } }
internal void OnTransferSuccess(TransferEventArgs eventArgs) { EventHandler<TransferEventArgs> handler = this.FileTransferred; if (handler != null) { handler(this, eventArgs); } }
private static void TransferContext_FileSkipped(object sender, TransferEventArgs e) { // This is largely optional. Files can be skipped if the source and destination are the same for Incremental Copies // So this information does not always represent an error that occurred but is driven by the OverwriteCallback // Add the transfer error information from the FileSkipped event into the List object // This will be written to the WebJobs log _skippedFiles.Add(new TransferDetail { Source = e.Source, Destination = e.Destination, Error = e.Exception.Message }); }
private static void TransferContext_FileFailed(object sender, TransferEventArgs e) { // We need to trap transfer failures in this event handler rather than CopyDirectoryAsync() // Add the transfer error information from the FileFailed event into the List object // This will be written to the WebJobs log _failedFiles.Add(new TransferDetail { Source = e.Source, Destination = e.Destination, Error = e.Exception.Message }); }
/// <summary> /// Execute the transfer asynchronously. /// </summary> /// <param name="scheduler">Transfer scheduler</param> /// <param name="cancellationToken">Token that can be used to cancel the transfer.</param> /// <returns>A task representing the transfer operation.</returns> public override async Task ExecuteAsync(TransferScheduler scheduler, CancellationToken cancellationToken) { if (this.transferJob.Status == TransferJobStatus.Finished || this.transferJob.Status == TransferJobStatus.Skipped) { return; } TransferEventArgs eventArgs = new TransferEventArgs(this.Source.ToString(), this.Destination.ToString()); eventArgs.StartTime = DateTime.UtcNow; if (this.transferJob.Status == TransferJobStatus.Failed) { // Resuming a failed transfer job if (string.IsNullOrEmpty(this.transferJob.CopyId)) { this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Transfer); } else { this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Monitor); } } try { await scheduler.ExecuteJobAsync(this.transferJob, cancellationToken); this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Finished); eventArgs.EndTime = DateTime.UtcNow; if(this.Context != null) { this.Context.OnTransferSuccess(eventArgs); } } catch (TransferException exception) { eventArgs.EndTime = DateTime.UtcNow; eventArgs.Exception = exception; if (exception.ErrorCode == TransferErrorCode.NotOverwriteExistingDestination) { // transfer skipped this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Skipped); if (this.Context != null) { this.Context.OnTransferSkipped(eventArgs); } throw; } else { // transfer failed this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Failed); if (this.Context != null) { this.Context.OnTransferFailed(eventArgs); } throw; } } catch (Exception ex) { eventArgs.EndTime = DateTime.UtcNow; eventArgs.Exception = ex; // transfer failed this.UpdateTransferJobStatus(this.transferJob, TransferJobStatus.Failed); if (this.Context != null) { this.Context.OnTransferFailed(eventArgs); } throw; } }