public NotificationWindow(Notification notification, IToastrConfiguration config)
        {
            InitializeComponent();

            _config = config;

            MessageText.Text = notification.Message;
            TitleText.Text = notification.Title ?? string.Empty;
            TitleText.Visibility = string.IsNullOrWhiteSpace(notification.Title)
                ? Visibility.Collapsed
                : Visibility.Visible;
            CloseButton.Visibility = !config.CloseButton
                ? Visibility.Collapsed
                : Visibility.Visible;

            BitmapImage logo = new BitmapImage();
            logo.BeginInit();
            logo.UriSource = new Uri($"pack://application:,,,/EdlinSoftware.Toastr;component/Images/{notification.Type}.png");
            logo.EndInit();
            TypeImage.Source = logo;

            _timer = new Timer
            {
                Interval = config.TimeOut
             };
            _timer.Elapsed += OnTimer;
            _timer.Start();
        }
 public NotificationsController(uint desktopWidth, uint desktopHeight, ActionsExecutor actionsExecutor, IToastrConfiguration configuration, Func<Notification, IToastrConfiguration, INotificationWindow> windowCreator)
 {
     if (actionsExecutor == null) throw new ArgumentNullException(nameof(actionsExecutor));
     if (configuration == null) throw new ArgumentNullException(nameof(configuration));
     _actionsExecutor = actionsExecutor;
     _configuration = configuration;
     _windowCreator = windowCreator;
     _positionCalculator = PositionCalculatorFactory.GetCalculator(desktopWidth, desktopHeight, configuration.HorizontalOffset, configuration.VerticalOffset, configuration.Width, configuration.PositionClass);
 }