using Prism.Events;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Txgy.EWS.Client.Common.MessageEvents;
namespace Txgy.EWS.Client.Common.Extensions
{
public static class DialogExtensions
{
///
/// 询问窗口
///
/// 指定的DialogHost会话主机
/// 标题
/// 询问内容
/// 会话主机名称(唯一)
///
public static async Task Question(this IDialogHostService dialogHost,
string title, string content, string dialogHostName = "Root"
)
{
DialogParameters param = new DialogParameters();
param.Add("Title", title);
param.Add("Content", content);
param.Add("dialogHostName", dialogHostName);
var dialogResult = await dialogHost.ShowDialog("MsgView", param, dialogHostName);
return dialogResult;
}
///
/// 推送等待消息
///
///
///
public static void UpdateLoading(this IEventAggregator aggregator, UpdateModel model)
{
aggregator.GetEvent().Publish(model);
}
///
/// 注册等待消息
///
///
///
public static void Resgiter(this IEventAggregator aggregator, Action action)
{
aggregator.GetEvent().Subscribe(action);
}
///
/// 注册提示消息
///
///
///
public static void ResgiterMessage(this IEventAggregator aggregator,
Action action, string filterName = "Main")
{
aggregator.GetEvent().Subscribe(action,
ThreadOption.PublisherThread, true, (m) =>
{
return m.Filter.Equals(filterName);
});
}
///
/// 发送提示消息
///
///
///
public static void SendMessage(this IEventAggregator aggregator, string message, string filterName = "Main")
{
aggregator.GetEvent().Publish(new MessageModel()
{
Filter = filterName,
Message = message,
});
}
}
}