예제 #1
0
        public ConversationsPlugin()
        {
            state = new ConversationsState();

            EventBroker.Subscribe<Message>(AppEvents.New, delegate { State.New(); });
            EventBroker.Subscribe(AppEvents.New, delegate(SourceAddress address)
             	{
                    ClientState.Current.ViewController.MoveTo(
                        PluginsManager.Current.GetPlugin<ConversationsPlugin>().NewItemView,
                            new NewMessageDataHelper { To = address.ToList() });
             	});

            EventBroker.Subscribe(AppEvents.New, delegate(string url)
                {
                    ClientState.Current.ViewController.MoveTo(
                        PluginsManager.Current.GetPlugin<ConversationsPlugin>().NewItemView,
                            NewMessageDataHelper.Parse(url));
                });

            EventBroker.Subscribe(AppEvents.View, delegate(Message message)
               	{
               		if (message.MessageFolder == Folders.Drafts)
                    {
                        var access = new ClientMessageAccess(message);

                        ClientState.Current.ViewController.MoveTo(
                            PluginsManager.Current.GetPlugin<ConversationsPlugin>().NewItemView,
                                new NewMessageDataHelper
                                    {
                                        SourceMessageId = message.MessageId,
                                        Context = message.Context,
                                        To = message.To,
                                        Cc = message.CC,
                                        Bcc = message.BCC,
                                        Body = access.BodyHtml,
                                        SelectedChannelId = message.SourceChannelId,
                                        AttachedFiles = message.Attachments.Select(a => new AttachmentDataHelper(a)).ToList(),
                                        SuppressSignature = true
                                    }
                                );
                    }
                    else
                    {
                        state.SelectedMessages.Replace(new[] { message });
                        state.View();
                    }
               	});

            EventBroker.Subscribe(AppEvents.RequestFirstImportant, delegate(Message message)
                {
                    state.SelectedMessages.Replace(new[] { message });

                    ClientState.Current.ViewController.MoveTo(
                        PluginsManager.Current.GetPlugin<ConversationsPlugin>().DetailsView,
                            new OverviewDataHelper { MessageId = message.MessageId.Value, MakeNavigatorCurrent = true });
                });
        }
예제 #2
0
        public ConversationsPlugin()
        {
            state = new ConversationsState();

            EventBroker.Subscribe <Message>(AppEvents.New, delegate { State.New(); });
            EventBroker.Subscribe(AppEvents.New, delegate(SourceAddress address)
            {
                ClientState.Current.ViewController.MoveTo(
                    PluginsManager.Current.GetPlugin <ConversationsPlugin>().NewItemView,
                    new NewMessageDataHelper {
                    To = address.ToList()
                });
            });

            EventBroker.Subscribe(AppEvents.New, delegate(string url)
            {
                ClientState.Current.ViewController.MoveTo(
                    PluginsManager.Current.GetPlugin <ConversationsPlugin>().NewItemView,
                    NewMessageDataHelper.Parse(url));
            });

            EventBroker.Subscribe(AppEvents.View, delegate(Message message)
            {
                if (message.MessageFolder == Folders.Drafts)
                {
                    var access = new ClientMessageAccess(message);

                    ClientState.Current.ViewController.MoveTo(
                        PluginsManager.Current.GetPlugin <ConversationsPlugin>().NewItemView,
                        new NewMessageDataHelper
                    {
                        SourceMessageId = message.MessageId,
                        Context         = message.Context,
                        To   = message.To,
                        Cc   = message.CC,
                        Bcc  = message.BCC,
                        Body = access.BodyHtml,
                        SelectedChannelId = message.SourceChannelId,
                        AttachedFiles     = message.Attachments.Select(a => new AttachmentDataHelper(a)).ToList(),
                        SuppressSignature = true
                    }
                        );
                }
                else
                {
                    state.SelectedMessages.Replace(new[] { message });
                    state.View();
                }
            });

            EventBroker.Subscribe(AppEvents.RequestFirstImportant, delegate(Message message)
            {
                state.SelectedMessages.Replace(new[] { message });

                ClientState.Current.ViewController.MoveTo(
                    PluginsManager.Current.GetPlugin <ConversationsPlugin>().DetailsView,
                    new OverviewDataHelper {
                    MessageId = message.MessageId.Value, MakeNavigatorCurrent = true
                });
            });
        }