public NotificationChannelSelectionViewModel(AuditNotificationChannels model, INotificationSubscriptionProvider subscriptionProvider, IEventAggregator eventAggregator, INotifiableEventPublisher eventPublisher)
        {
            this.Model = model;

            this.SuccessSubscriptions = subscriptionProvider.GetSubscriptions(this.Model.OnSuccess);
            this.FailureSubscriptions = subscriptionProvider.GetSubscriptions(this.Model.OnFailure);

            this.AvailableSuccessSubscriptions = new BindableCollection <SubscriptionViewModel>(subscriptionProvider.Subscriptions.Except(this.SuccessSubscriptions));
            this.AvailableFailureSubscriptions = new BindableCollection <SubscriptionViewModel>(subscriptionProvider.Subscriptions.Except(this.FailureSubscriptions));

            eventAggregator.Subscribe(this);
            eventPublisher.Register(this);
        }
Example #2
0
        private IList <string> GetNotificationRecipients(AuditNotificationChannels t, bool success)
        {
            List <string> list = new List <string>();

            if (success)
            {
                t?.OnSuccess?.ForEach(u => list.Add(u));
            }
            else
            {
                t?.OnFailure?.ForEach(u => list.Add(u));
            }

            return(list);
        }
        public void SerializeAuditNotificationChannels()
        {
            AuditNotificationChannels channels = new AuditNotificationChannels();

            channels.OnFailure = new List <string>()
            {
                "1"
            };
            channels.OnSuccess = new List <string>()
            {
                "2"
            };

            AuditNotificationChannels newChannels = JsonConvert.DeserializeObject <AuditNotificationChannels>(JsonConvert.SerializeObject(channels));

            CollectionAssert.AreEqual(channels.OnFailure, newChannels.OnFailure);
        }
 public NotificationChannelSelectionViewModel CreateViewModel(AuditNotificationChannels notificationChannels)
 {
     return(new NotificationChannelSelectionViewModel(notificationChannels, this.subscriptionProvider, this.eventAggregator.Invoke(), this.eventPublisher.Invoke()));
 }