125 lines
3.8 KiB
C#
125 lines
3.8 KiB
C#
using MAX.Core.DependencyInjection;
|
|
using Store.Management.Framework.Configs;
|
|
using System.Windows;
|
|
using MessageBox = HandyControl.Controls.MessageBox;
|
|
|
|
namespace Store.Management.Framework
|
|
{
|
|
public class MessageBoxService : IMessageBoxService, ISingletonDependency
|
|
{
|
|
protected readonly Guid id = Guid.NewGuid();
|
|
|
|
public string MessageTitle { get; set; } = string.Empty;
|
|
|
|
public MessageBoxService()
|
|
{
|
|
MessageTitle = AppConfig.AppDisplayName;
|
|
}
|
|
|
|
public virtual MessageResult Show(string messageBoxText, string caption, MessageButton button, MessageIcon icon, MessageResult defaultResult)
|
|
{
|
|
Window? window = Application.Current?.Windows.OfType<Window>().FirstOrDefault(w => w.IsActive);
|
|
if (window is null)
|
|
{
|
|
return MessageBox.Show(
|
|
messageBoxText: messageBoxText,
|
|
caption: caption,
|
|
button: button.ToMessageBoxButton(),
|
|
icon: icon.ToMessageBoxImage(),
|
|
defaultResult: defaultResult.ToMessageBoxResult()
|
|
).ToMessageResult();
|
|
}
|
|
else
|
|
{
|
|
return MessageBox.Show(
|
|
owner: window,
|
|
messageBoxText: messageBoxText,
|
|
caption: caption,
|
|
button: button.ToMessageBoxButton(),
|
|
icon: icon.ToMessageBoxImage(),
|
|
defaultResult: defaultResult.ToMessageBoxResult()
|
|
).ToMessageResult();
|
|
}
|
|
}
|
|
|
|
public void ShowInformation(string content)
|
|
{
|
|
this.ShowMessage(content, MessageTitle, MessageButton.OK, MessageIcon.Information, MessageResult.OK);
|
|
}
|
|
|
|
public void ShowWarning(string content)
|
|
{
|
|
this.ShowMessage(content, MessageTitle, MessageButton.OK, MessageIcon.Warning, MessageResult.OK);
|
|
}
|
|
|
|
public void ShowError(string content, Exception exception)
|
|
{
|
|
if (exception is null)
|
|
{
|
|
ShowError(content);
|
|
}
|
|
else
|
|
{
|
|
this.ShowMessage(content + "\n" + exception.Message, MessageTitle, MessageButton.OK, MessageIcon.Error, MessageResult.OK);
|
|
}
|
|
}
|
|
|
|
public void ShowError(string content)
|
|
{
|
|
this.ShowMessage(content, MessageTitle, MessageButton.OK, MessageIcon.Error, MessageResult.OK);
|
|
}
|
|
|
|
public bool ShowYesNoQuestion(string content)
|
|
{
|
|
MessageResult result = this.ShowMessage(content, MessageTitle, MessageButton.YesNo, MessageIcon.Question, MessageResult.No);
|
|
return result == MessageResult.Yes;
|
|
}
|
|
|
|
public bool ShowYesNoWarning(string content)
|
|
{
|
|
MessageResult result = this.ShowMessage(content, MessageTitle, MessageButton.YesNo, MessageIcon.Warning, MessageResult.No);
|
|
return result == MessageResult.Yes;
|
|
}
|
|
|
|
public bool ShowYesNoError(string content)
|
|
{
|
|
MessageResult result = this.ShowMessage(content, MessageTitle, MessageButton.YesNo, MessageIcon.Error, MessageResult.No);
|
|
return result == MessageResult.Yes;
|
|
}
|
|
|
|
public bool ShowOkCancelQuestion(string content)
|
|
{
|
|
MessageResult result = this.ShowMessage(content, MessageTitle, MessageButton.OKCancel, MessageIcon.Question, MessageResult.OK);
|
|
return result == MessageResult.OK;
|
|
}
|
|
|
|
public bool ShowOkCancelWarning(string content)
|
|
{
|
|
MessageResult result = this.ShowMessage(content, MessageTitle, MessageButton.OKCancel, MessageIcon.Warning, MessageResult.OK);
|
|
return result == MessageResult.OK;
|
|
}
|
|
|
|
public bool ShowOkCancelError(string content)
|
|
{
|
|
MessageResult result = this.ShowMessage(content, MessageTitle, MessageButton.OKCancel, MessageIcon.Error, MessageResult.OK);
|
|
return result == MessageResult.OK;
|
|
}
|
|
|
|
public MessageResult ShowYesNoCancelQuestion(string content)
|
|
{
|
|
return this.ShowMessage(content, MessageTitle, MessageButton.YesNoCancel, MessageIcon.Question, MessageResult.Cancel);
|
|
}
|
|
|
|
public MessageResult ShowYesNoCancelWarning(string content)
|
|
{
|
|
return this.ShowMessage(content, MessageTitle, MessageButton.YesNoCancel, MessageIcon.Warning, MessageResult.Cancel);
|
|
}
|
|
|
|
public MessageResult ShowYesNoCancelError(string content)
|
|
{
|
|
return this.ShowMessage(content, MessageTitle, MessageButton.YesNoCancel, MessageIcon.Error, MessageResult.Cancel);
|
|
}
|
|
|
|
}
|
|
}
|