public static void TryAddSyncError(this IServiceProvider provider, SyncErrorInfo error) { var svc = provider.GetService <ISyncErrorInformer>(); if (svc == null) { return; } svc.AddError(error); }
private bool HasSameErrorText(SyncErrorInfo errorInfo) { var i = _errors.Count - 1; while (i >= 0) { var cur = _errors[i]; if (cur.Text != _skippedTextSubst) { return(cur.Text == errorInfo.Text); } i--; } return(false); }
public void AddError(SyncErrorInfo errorInfo) { _asyncOp.Post( () => { // Drop text, if previous error was the same if (HasSameErrorText(errorInfo)) { errorInfo = new SyncErrorInfo(errorInfo.Type, errorInfo.TaskName, _skippedTextSubst); } _errors.Add(errorInfo); if (!_errorMode) { _splitContainer.Panel2Collapsed = false; Height = _errorHeight; _copyButton.Visible = true; _errorMode = true; } }); }