Пример #1
0
        private static void InnerPublish <TNotification>(IPublisherSubscriber publisherSubscriber, string title, string message, string error, int actualStep, int totalSteps, ILogger log)
            where TNotification : ProgressiveTaskNotification, new()
        {
            var notification = new TNotification();

            log = log ?? NullLogger.Instance;

            if (title != null)
            {
                notification.Arguments.Title = title;
            }
            if (message != null)
            {
                notification.Arguments.Message = message;
            }
            if (error != null)
            {
                log.Error(error);
            }
            if (actualStep > -1)
            {
                notification.Arguments.ActualStep = actualStep;
            }
            if (totalSteps > -1)
            {
                notification.Arguments.TotalSteps = totalSteps;
            }

            notification.Arguments.Error = error;

            publisherSubscriber.Publish(notification);
        }
 public static void RegisterInstance(IPublisherSubscriber instance)
 {
     lock ( _lockObj )
     {
         Instance = instance;
     }
 }
Пример #3
0
        public Bootstrapper(IEnumerable <IAction> actions, IPublisherSubscriber publisherSubscriber)
        {
            Prevent.ParameterNull(actions, nameof(actions));

            _actions             = actions;
            _publisherSubscriber = publisherSubscriber;
        }
Пример #4
0
        public SplashScreenForm(IPublisherSubscriber publisherSubscriber)
        {
            Prevent.ParameterNull(publisherSubscriber, nameof(publisherSubscriber));

            _publisherSubscriber = publisherSubscriber;

            InitializeComponent();
        }
Пример #5
0
        /// <summary>
        /// Initializes a new instance of <see cref="Subscription{TMessage}"/>.
        /// </summary>
        /// <param name="handler">The message handler.</param>
        /// <param name="pubSub">The publisher/subscriber.</param>
        public Subscription(Action <TMessage> handler, IPublisherSubscriber pubSub)
        {
            Prevent.ParameterNull(handler, nameof(handler));
            Prevent.ParameterNull(pubSub, nameof(pubSub));

            _methodInfo   = handler.GetMethodInfo();
            _pubSub       = pubSub;
            _targetObject = new WeakReference(handler.Target);
            _isStatic     = handler.Target == null;
        }
        public DocumentDirectoryForm(CancellationTokenIssuer cancellationTokenIssuer, IMediator mediator, IPublisherSubscriber publisherSubscriber)
        {
            Prevent.ParameterNull(cancellationTokenIssuer, nameof(cancellationTokenIssuer));
            Prevent.ParameterNull(mediator, nameof(mediator));
            Prevent.ParameterNull(publisherSubscriber, nameof(publisherSubscriber));

            _cancellationTokenIssuer = cancellationTokenIssuer;
            _mediator            = mediator;
            _publisherSubscriber = publisherSubscriber;

            InitializeComponent();
        }
Пример #7
0
        public static void TaskContinuation(this IPublisherSubscriber source, Task continuation, object state)
        {
            if (source == null)
            {
                return;
            }
            if (continuation == null)
            {
                return;
            }
            if (state == null)
            {
                return;
            }

            var error = string.Empty;
            var info  = (state as ProgressiveTaskContinuationInfo) ?? new ProgressiveTaskContinuationInfo();

            var ex = continuation.Exception as AggregateException;

            if (ex != null)
            {
                var stringBuilder = new StringBuilder();
                foreach (var exception in ex.InnerExceptions)
                {
                    stringBuilder.AppendLine(exception.Message);
                }
                error = stringBuilder.ToString();
                source.ProgressiveTaskError(error: error, actualStep: info.ActualStep, totalSteps: info.TotalSteps, log: info.Log);
                return;
            }

            if (continuation.IsCanceled)
            {
                source.ProgressiveTaskCancel(actualStep: info.ActualStep, totalSteps: info.TotalSteps, log: info.Log);
                return;
            }

            source.ProgressiveTaskComplete(error: error, actualStep: info.ActualStep, totalSteps: info.TotalSteps, log: info.Log);
        }
Пример #8
0
 public static void ProgressiveTaskError(this IPublisherSubscriber source, string error, string title = null, string message = null, int actualStep = 0, int totalSteps = 0, ILogger log = null)
 {
     InnerPublish <ProgressiveTaskErrorNotification>(source, title, message, null, actualStep, totalSteps, log);
 }