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().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); } } }