namespace Store.Management.Framework { public static class MessageBoxServiceExtensions { extension(IMessageBoxService service) { public MessageResult ShowMessage(string messageBoxText, string caption, MessageButton button, MessageIcon icon, MessageResult defaultResult) { VerifyService(service); return service.Show(messageBoxText, caption, button, icon, defaultResult); } public bool? ShowMessage(string messageBoxText) { return service.ShowMessage(messageBoxText, string.Empty); } public bool? ShowMessage(string messageBoxText, string caption) { return service.ShowMessage(messageBoxText, caption, MessageButton.OK).ToBool(); } public MessageResult ShowMessage(string messageBoxText, string caption, MessageButton button) { return service.ShowMessage(messageBoxText, caption, button, MessageIcon.None); } public MessageResult ShowMessage(string messageBoxText, string caption, MessageButton button, MessageIcon icon) { VerifyService(service); return service.Show(messageBoxText, caption, button, icon, MessageResult.None); } } static void VerifyService(IMessageBoxService service) { if (service == null) throw new ArgumentNullException(nameof(service)); } } }