コード例 #1
0
        public static void TryAddSyncError(this IServiceProvider provider, SyncErrorInfo error)
        {
            var svc = provider.GetService <ISyncErrorInformer>();

            if (svc == null)
            {
                return;
            }
            svc.AddError(error);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 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;
         }
     });
 }