| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- using Prism.Mvvm;
- using Prism.Regions;
- using Prism.Services.Dialogs;
- using SKMC.Api.Client.Model;
- using SKMC.Api.Client.Access;
- using SKMC.Api.Client.Views;
- using SKMC.Api.Common.Exceptions;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace SKMC.Api.Client
- {
- /// <summary>
- /// 客户端缓存器
- /// </summary>
- public abstract class ClientCacher : BindableBase
- {
- /// <summary>
- /// UI的区域管理器
- /// </summary>
- public IRegionManager RegionManager { get; set; }
- /// <summary>
- /// UI的对话框管理器
- /// </summary>
- public IDialogService DialogService { get; set; }
- /// <summary>
- /// 角色权限访问接口
- /// </summary>
- public IClientRoleAccesser ClientRoleAccesser { get; set; }
- /// <summary>
- /// 异常窗口的抽象视图模型
- /// </summary>
- public ExceptionsViewModel ExceptionsViewModel { get; set; }
- /// <summary>
- /// 当前登录角色
- /// </summary>
- public string CurrentRole { get; set; }
- /// <summary>
- /// 当前选择的分类
- /// </summary>
- public string CurrentCatalog { get; set; }
- /// <summary>
- /// 分类更改事件
- /// </summary>
- public event Action<string> CatalogChanged;
- /// <summary>
- /// 分类更改动作
- /// </summary>
- /// <param name="catalog"></param>
- public void CatalogChange(string catalog)
- {
- CurrentCatalog = catalog;
- CatalogChanged?.Invoke(catalog);
- }
- /// <summary>
- /// 客户端消息集
- /// </summary>
- public ObservableCollection<ClientMessage> ClientMessages { get; set; } = new ObservableCollection<ClientMessage>();
- /// <summary>
- /// 当前未处理的异常
- /// </summary>
- public ObservableCollection<ExceptionShow> CurrentExceptions { get; set; } = new ObservableCollection<ExceptionShow>();
- /// <summary>
- /// 历史异常记录
- /// </summary>
- public ObservableCollection<ExceptionShow> HistoryExceptions { get; set; } = new ObservableCollection<ExceptionShow>();
- /// <summary>
- /// 已弹窗的提醒对话框
- /// </summary>
- public List<IShowDialog> ShowCommonDialogs = new List<IShowDialog>();
- /// <summary>
- /// 已弹窗的异常对话框
- /// </summary>
- public List<IShowDialog> ShowExceptionDialogs = new List<IShowDialog>();
- /// <summary>
- /// 界面跳转
- /// </summary>
- /// <param name="view"></param>
- public abstract void Forward(string view);
- /// <summary>
- /// 弹出通用的对话框
- /// </summary>
- /// <param name="viewName">UI的view层显示名称</param>
- /// <param name="parms">参数表</param>
- /// <param name="callback">回调函数</param>
- /// <param name="blocked">是否阻塞控制流程</param>
- public abstract string ShowCommonDialog(string viewName, DialogParameters parms, Action<IDialogResult> callback, bool blocked = true);
- /// <summary>
- /// 弹出异常对话框
- /// </summary>
- /// <param name="viewName">UI的view层显示名称</param>
- /// <param name="exception">异常对象</param>
- /// <param name="blocked">是否阻塞控制流程</param>
- public abstract string ShowExceptionDialog(string viewName, ExceptionShow exception, bool blocked = true);
- /// <summary>
- /// 查询弹窗是否显示
- /// </summary>
- /// <param name="id"></param>
- /// <returns></returns>
- public abstract bool IsDialogShow(string id);
- /// <summary>
- /// 关闭指定id的对话框(通知或异常)
- /// </summary>
- /// <param name="id"></param>
- public abstract void CloseDialog(string id);
- /// <summary>
- /// 关闭所有已弹出的对话框(通知或异常)
- /// </summary>
- public abstract void CloseAllDialogs();
- /// <summary>
- /// 清除当前异常 (转移到历史异常中)
- /// </summary>
- public void ClearExceptions()
- {
- HistoryExceptions.AddRange(CurrentExceptions);
- CurrentExceptions.Clear();
- }
- }
- }
|