using System;
using System.Runtime.CompilerServices;
using DMS.Core.Enums;
namespace DMS.WPF.Interfaces;
public interface INotificationService
{
///
/// 显示一个通用通知消息,并根据通知类型记录日志。支持节流。
///
/// 通知消息内容。
/// 通知类型(如信息、错误、成功等)。
/// 是否启用通知节流。
/// 自动捕获:调用此方法的源文件完整路径。
/// 自动捕获:调用此方法的行号。
void ShowMessage(string msg, NotificationType notificationType = NotificationType.Info, bool throttle = true,
[CallerFilePath] string callerFilePath = "",
[CallerLineNumber] int callerLineNumber = 0);
///
/// 显示一个错误通知消息,并记录错误日志。支持节流。
///
/// 错误消息内容。
/// 可选:要记录的异常对象。
/// 是否启用通知和日志节流。
/// 自动捕获:调用此方法的源文件完整路径。
/// 自动捕获:调用此方法的成员或属性名称。
/// 自动捕获:调用此方法的行号。
void ShowError(string msg, Exception exception = null, bool throttle = true,
[CallerFilePath] string callerFilePath = "",
[CallerMemberName] string callerMember = "",
[CallerLineNumber] int callerLineNumber = 0);
///
/// 显示一个成功通知消息,并记录信息日志。支持节流。
///
/// 成功消息内容。
/// 是否启用通知和日志节流。
/// 自动捕获:调用此方法的源文件完整路径。
/// 自动捕获:调用此方法的成员或属性名称。
/// 自动捕获:调用此方法的行号。
void ShowSuccess(string msg, bool throttle = true,
[CallerFilePath] string callerFilePath = "",
[CallerMemberName] string callerMember = "",
[CallerLineNumber] int callerLineNumber = 0);
///
/// 显示一个信息通知消息,并记录信息日志。支持节流。
///
/// 信息消息内容。
/// 是否启用通知和日志节流。
/// 自动捕获:调用此方法的源文件完整路径。
/// 自动捕获:调用此方法的成员或属性名称。
/// 自动捕获:调用此方法的行号。
void ShowInfo(string msg, bool throttle = true,
[CallerFilePath] string callerFilePath = "",
[CallerMemberName] string callerMember = "",
[CallerLineNumber] int callerLineNumber = 0);
///
/// 显示一个警告通知消息,并记录警告日志。支持节流。
///
/// 警告消息内容。
/// 是否启用通知和日志节流。
/// 自动捕获:调用此方法的源文件完整路径。
/// 自动捕获:调用此方法的成员或属性名称。
/// 自动捕获:调用此方法的行号。
void ShowWarn(string msg, bool throttle = true,
[CallerFilePath] string callerFilePath = "",
[CallerMemberName] string callerMember = "",
[CallerLineNumber] int callerLineNumber = 0);
}