public MessageListViewModel(
            MessageRepository messageRepository,
            [NotNull] MessageWatcher messageWatcher,
            MimeMessageLoader mimeMessageLoader,
            IPublishEvent publishEvent,
            ILogger logger)
        {
            if (messageRepository == null)
                throw new ArgumentNullException(nameof(messageRepository));
            if (messageWatcher == null)
                throw new ArgumentNullException(nameof(messageWatcher));
            if (mimeMessageLoader == null)
                throw new ArgumentNullException(nameof(mimeMessageLoader));
            if (publishEvent == null)
                throw new ArgumentNullException(nameof(publishEvent));

            _messageRepository = messageRepository;
            _messageWatcher = messageWatcher;
            _mimeMessageLoader = mimeMessageLoader;
            _publishEvent = publishEvent;
            _logger = logger;

            SetupMessages();
            RefreshMessageList();
        }
        public MessageListViewModel(
            MessageRepository messageRepository,
            [NotNull] MessageWatcher messageWatcher,
            MimeMessageLoader mimeMessageLoader,
            IMessageBus messageBus,
            ILogger logger)
        {
            if (messageRepository == null)
            {
                throw new ArgumentNullException(nameof(messageRepository));
            }
            if (messageWatcher == null)
            {
                throw new ArgumentNullException(nameof(messageWatcher));
            }
            if (mimeMessageLoader == null)
            {
                throw new ArgumentNullException(nameof(mimeMessageLoader));
            }
            if (messageBus == null)
            {
                throw new ArgumentNullException(nameof(messageBus));
            }

            _messageRepository = messageRepository;
            _messageWatcher    = messageWatcher;
            _mimeMessageLoader = mimeMessageLoader;
            this._messageBus   = messageBus;
            _logger            = logger;

            SetupMessages();
            RefreshMessageList();
        }
Exemple #3
0
        public MessageListViewModel(
            MessageRepository messageRepository,
            [NotNull] MessageWatcher messageWatcher,
            MimeMessageLoader mimeMessageLoader,
            IPublishEvent publishEvent,
            ILogger logger)
        {
            if (messageRepository == null)
            {
                throw new ArgumentNullException(nameof(messageRepository));
            }
            if (messageWatcher == null)
            {
                throw new ArgumentNullException(nameof(messageWatcher));
            }
            if (mimeMessageLoader == null)
            {
                throw new ArgumentNullException(nameof(mimeMessageLoader));
            }
            if (publishEvent == null)
            {
                throw new ArgumentNullException(nameof(publishEvent));
            }

            _messageRepository = messageRepository;
            _messageWatcher    = messageWatcher;
            _mimeMessageLoader = mimeMessageLoader;
            _publishEvent      = publishEvent;
            _logger            = logger;

            SetupMessages();
            RefreshMessageList();
        }
Exemple #4
0
        public MessageListViewModel(
            IUiCommandHub uiCommandHub,
            MessageRepository messageRepository,
            [NotNull] MessageWatcher messageWatcher,
            MimeMessageLoader mimeMessageLoader,
            ILogger logger)
        {
            if (messageRepository == null)
            {
                throw new ArgumentNullException(nameof(messageRepository));
            }
            if (messageWatcher == null)
            {
                throw new ArgumentNullException(nameof(messageWatcher));
            }
            if (mimeMessageLoader == null)
            {
                throw new ArgumentNullException(nameof(mimeMessageLoader));
            }

            this._uiCommandHub      = uiCommandHub;
            this._messageRepository = messageRepository;
            this._messageWatcher    = messageWatcher;
            this._mimeMessageLoader = mimeMessageLoader;
            this._logger            = logger;

            this.SetupMessages();
            this.RefreshMessageList();
        }
Exemple #5
0
        public MimeMessageEntry(MessageEntry entry, MimeMessageLoader loader)
            : base(entry.File)
        {
            IsSelected = entry.IsSelected;
            Subject    = "Loading...";

            loader.GetMessageCallback(this, LoadMessageDetails);
        }
        public MimeMessageEntry(MessageEntry entry, MimeMessageLoader loader)
            : base(entry.File)
        {
            IsSelected = entry.IsSelected;

            loader.Get(this).Subscribe(m => { Subject = m.Subject; },
                e =>
                {
                    Subject = "Failure loading message: " + e.Message;
                });
        }
Exemple #7
0
        public MimeMessageEntry(MessageEntry entry, MimeMessageLoader loader)
            : base(entry.File)
        {
            IsSelected = entry.IsSelected;

            loader.Get(this).Subscribe(m => { Subject = m.Subject; },
                                       e =>
            {
                Subject = "Failure loading message: " + e.Message;
            });
        }
Exemple #8
0
        public static IObservable <MimeMessage> GetObservable([NotNull] this MimeMessageLoader loader, [NotNull] MessageEntry entry, CancellationToken token = default)
        {
            if (loader == null)
            {
                throw new ArgumentNullException(nameof(loader));
            }
            if (entry == null)
            {
                throw new ArgumentNullException(nameof(entry));
            }

            return(loader.GetAsync(entry, token).ToObservable(TaskPoolScheduler.Default));
        }
Exemple #9
0
        public static async Task <MimeMessage> GetClonedAsync([NotNull] this MimeMessageLoader loader, [NotNull] MessageEntry entry, CancellationToken token = default)
        {
            if (loader == null)
            {
                throw new ArgumentNullException(nameof(loader));
            }
            if (entry == null)
            {
                throw new ArgumentNullException(nameof(entry));
            }

            var message = await loader.GetAsync(entry, token);

            return(await message.CloneMessageAsync(token));
        }
Exemple #10
0
        public MimeMessageEntry(MessageEntry entry, MimeMessageLoader loader)
            : base(entry.File)
        {
            IsSelected = entry.IsSelected;

            loader.GetObservable(this).Subscribe(m =>
            {
                Subject          = m.Subject;
                Priority         = m.Priority;
                AttachmentsCount = m.Attachments.Count();
            },
                                                 e =>
            {
                Subject = $"Failure loading message: {e.Message}";
            });
        }
Exemple #11
0
        public static MimeMessage Get([NotNull] this MimeMessageLoader loader, [NotNull] MessageEntry entry)
        {
            if (loader == null)
            {
                throw new ArgumentNullException(nameof(loader));
            }
            if (entry == null)
            {
                throw new ArgumentNullException(nameof(entry));
            }

            var loadTask = loader.GetAsync(entry);

            loadTask.Wait();

            return(loadTask.Result);
        }
        public MessageDetailViewModel(
            Func <MessageDetailPartsListViewModel> partsListViewModelFactory,
            Func <MessageDetailHtmlViewModel> htmlViewModelFactory,
            Func <MessageDetailRawViewModel> rawViewModelFactory,
            Func <MessageDetailHeaderViewModel> headerViewModelFactory,
            Func <MessageDetailBodyViewModel> bodyViewModelFactory,
            MimeMessageLoader mimeMessageLoader)
        {
            _mimeMessageLoader = mimeMessageLoader;

            PartsListViewModel = partsListViewModelFactory();
            HtmlViewModel      = htmlViewModelFactory();
            RawViewModel       = rawViewModelFactory();
            HeaderViewModel    = headerViewModelFactory();
            BodyViewModel      = bodyViewModelFactory();

            Items.Add(HtmlViewModel);
            Items.Add(HeaderViewModel);
            Items.Add(BodyViewModel);
            Items.Add(PartsListViewModel);
            Items.Add(RawViewModel);
        }
Exemple #13
0
 public MessagesController(MessageRepository messageRepository, MimeMessageLoader messageLoader, ILogger logger)
 {
     this._messageRepository = messageRepository;
     this._messageLoader     = messageLoader;
     _logger = logger;
 }
Exemple #14
0
 public MessagesController(MessageRepository messageRepository, MimeMessageLoader messageLoader)
 {
     this.messageRepository = messageRepository;
     this.messageLoader     = messageLoader;
 }