public static List <UICommand> GenerateFromMessageBoxButton(MessageBoxButton dialogButtons, IMessageButtonLocalizer buttonLocalizer, MessageBoxResult?defaultButton = null, MessageBoxResult?cancelButton = null)
        {
            MessageResult?defaultResult = defaultButton == null ? (MessageResult?)null : defaultButton.Value.ToMessageResult();
            MessageResult?cancelResult  = cancelButton == null ? (MessageResult?)null : cancelButton.Value.ToMessageResult();

            return(GenerateFromMessageButton(dialogButtons.ToMessageButton(), true, buttonLocalizer, defaultResult, cancelResult));
        }
        static List <UICommand> GenerateFromMessageButton(MessageButton dialogButtons, bool usePlatformSpecificTag, IMessageButtonLocalizer buttonLocalizer, MessageResult?defaultButton, MessageResult?cancelButton)
        {
            List <UICommand> commands = new List <UICommand>();

            if (dialogButtons == MessageButton.OK)
            {
                UICommand okCommand = CreateDefaultButtonCommand(MessageResult.OK, usePlatformSpecificTag, buttonLocalizer.Localize);
                okCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.OK;
                okCommand.IsCancel  = cancelButton == MessageResult.OK;

                commands.Add(okCommand);
                return(commands);
            }
            if (dialogButtons == MessageButton.OKCancel)
            {
                UICommand okCommand     = CreateDefaultButtonCommand(MessageResult.OK, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand cancelCommand = CreateDefaultButtonCommand(MessageResult.Cancel, usePlatformSpecificTag, buttonLocalizer.Localize);
                okCommand.IsDefault     = defaultButton == null || defaultButton == MessageResult.OK;
                cancelCommand.IsDefault = defaultButton == MessageResult.Cancel;
                okCommand.IsCancel      = cancelButton == MessageResult.OK;
                cancelCommand.IsCancel  = cancelButton == null || cancelButton == MessageResult.Cancel;

                commands.Add(okCommand);
                commands.Add(cancelCommand);
                return(commands);
            }
            if (dialogButtons == MessageButton.YesNo)
            {
                UICommand yesCommand = CreateDefaultButtonCommand(MessageResult.Yes, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand noCommand  = CreateDefaultButtonCommand(MessageResult.No, usePlatformSpecificTag, buttonLocalizer.Localize);
                yesCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.Yes;
                noCommand.IsDefault  = defaultButton == MessageResult.No;
                yesCommand.IsCancel  = cancelButton == MessageResult.Yes;
                noCommand.IsCancel   = cancelButton == null || cancelButton == MessageResult.No;

                commands.Add(yesCommand);
                commands.Add(noCommand);
                return(commands);
            }
            if (dialogButtons == MessageButton.YesNoCancel)
            {
                UICommand yesCommand    = CreateDefaultButtonCommand(MessageResult.Yes, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand noCommand     = CreateDefaultButtonCommand(MessageResult.No, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand cancelCommand = CreateDefaultButtonCommand(MessageResult.Cancel, usePlatformSpecificTag, buttonLocalizer.Localize);
                yesCommand.IsDefault    = defaultButton == null || defaultButton == MessageResult.Yes;
                noCommand.IsDefault     = defaultButton == MessageResult.No;
                cancelCommand.IsDefault = defaultButton == MessageResult.Cancel;
                yesCommand.IsCancel     = cancelButton == MessageResult.Yes;
                noCommand.IsCancel      = cancelButton == null || cancelButton == MessageResult.No;
                cancelCommand.IsCancel  = cancelButton == null || cancelButton == MessageResult.Cancel;

                commands.Add(yesCommand);
                commands.Add(noCommand);
                commands.Add(cancelCommand);
                return(commands);
            }
            return(commands);
        }
 public static List <UICommand> GenerateFromMessageButton(MessageButton dialogButtons, IMessageButtonLocalizer buttonLocalizer, MessageResult?defaultButton = null, MessageResult?cancelButton = null)
 {
     return(GenerateFromMessageButton(dialogButtons, false, buttonLocalizer, defaultButton, cancelButton));
 }
        static List<UICommand> GenerateFromMessageButton(MessageButton dialogButtons, bool usePlatformSpecificTag, IMessageButtonLocalizer buttonLocalizer, MessageResult? defaultButton, MessageResult? cancelButton) {
            List<UICommand> commands = new List<UICommand>();
            if(dialogButtons == MessageButton.OK) {
                UICommand okCommand = CreateDefaultButonCommand(MessageResult.OK, usePlatformSpecificTag, buttonLocalizer.Localize);
                okCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.OK;
                okCommand.IsCancel = cancelButton == MessageResult.OK;

                commands.Add(okCommand);
                return commands;
            }
            if(dialogButtons == MessageButton.OKCancel) {
                UICommand okCommand = CreateDefaultButonCommand(MessageResult.OK, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand cancelCommand = CreateDefaultButonCommand(MessageResult.Cancel, usePlatformSpecificTag, buttonLocalizer.Localize);
                okCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.OK;
                cancelCommand.IsDefault = defaultButton == MessageResult.Cancel;
                okCommand.IsCancel = cancelButton == MessageResult.OK;
                cancelCommand.IsCancel = cancelButton == null || cancelButton == MessageResult.Cancel;

                commands.Add(okCommand);
                commands.Add(cancelCommand);
                return commands;
            }
            if(dialogButtons == MessageButton.YesNo) {
                UICommand yesCommand = CreateDefaultButonCommand(MessageResult.Yes, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand noCommand = CreateDefaultButonCommand(MessageResult.No, usePlatformSpecificTag, buttonLocalizer.Localize);
                yesCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.Yes;
                noCommand.IsDefault = defaultButton == MessageResult.No;
                yesCommand.IsCancel = cancelButton == MessageResult.Yes;
                noCommand.IsCancel = cancelButton == null || cancelButton == MessageResult.No;

                commands.Add(yesCommand);
                commands.Add(noCommand);
                return commands;
            }
            if(dialogButtons == MessageButton.YesNoCancel) {
                UICommand yesCommand = CreateDefaultButonCommand(MessageResult.Yes, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand noCommand = CreateDefaultButonCommand(MessageResult.No, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand cancelCommand = CreateDefaultButonCommand(MessageResult.Cancel, usePlatformSpecificTag, buttonLocalizer.Localize);
                yesCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.Yes;
                noCommand.IsDefault = defaultButton == MessageResult.No;
                cancelCommand.IsDefault = defaultButton == MessageResult.Cancel;
                yesCommand.IsCancel = cancelButton == MessageResult.Yes;
                noCommand.IsCancel = cancelButton == null || cancelButton == MessageResult.No;
                cancelCommand.IsCancel = cancelButton == null || cancelButton == MessageResult.Cancel;

                commands.Add(yesCommand);
                commands.Add(noCommand);
                commands.Add(cancelCommand);
                return commands;
            }
#if NETFX_CORE
            if(dialogButtons == MessageButton.AbortRetryIgnore) {
                UICommand abortCommand = CreateDefaultButonCommand(MessageResult.Abort, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand retryCommand = CreateDefaultButonCommand(MessageResult.Retry, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand ignoreCommand = CreateDefaultButonCommand(MessageResult.Ignore, usePlatformSpecificTag, buttonLocalizer.Localize);
                abortCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.Abort;
                retryCommand.IsDefault = defaultButton == MessageResult.Retry;
                ignoreCommand.IsDefault = defaultButton == MessageResult.Ignore;
                abortCommand.IsCancel = cancelButton == MessageResult.Abort;
                retryCommand.IsCancel = cancelButton == null || cancelButton == MessageResult.Retry;
                ignoreCommand.IsCancel = cancelButton == null || cancelButton == MessageResult.Ignore;

                commands.Add(abortCommand);
                commands.Add(retryCommand);
                commands.Add(ignoreCommand);
                return commands;
            }
            if(dialogButtons == MessageButton.Close) {
                UICommand closeCommand = CreateDefaultButonCommand(MessageResult.Close, usePlatformSpecificTag, buttonLocalizer.Localize);
                closeCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.Close;
                closeCommand.IsCancel = cancelButton == MessageResult.Close;

                commands.Add(closeCommand);
                return commands;
            }
            if(dialogButtons == MessageButton.RetryCancel) {
                UICommand retryCommand = CreateDefaultButonCommand(MessageResult.Retry, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand cancelCommand = CreateDefaultButonCommand(MessageResult.Cancel, usePlatformSpecificTag, buttonLocalizer.Localize);
                retryCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.Retry;
                cancelCommand.IsDefault = defaultButton == MessageResult.Cancel;
                retryCommand.IsCancel = cancelButton == MessageResult.Retry;
                cancelCommand.IsCancel = cancelButton == null || cancelButton == MessageResult.Cancel;

                commands.Add(retryCommand);
                commands.Add(cancelCommand);
                return commands;
            }
#endif
            return commands;
        }
 public static List<UICommand> GenerateFromMessageBoxButton(MessageBoxButton dialogButtons, IMessageButtonLocalizer buttonLocalizer, MessageBoxResult? defaultButton = null, MessageBoxResult? cancelButton = null) {
     MessageResult? defaultResult = defaultButton == null ? (MessageResult?)null : defaultButton.Value.ToMessageResult();
     MessageResult? cancelResult = cancelButton == null ? (MessageResult?)null : cancelButton.Value.ToMessageResult();
     return GenerateFromMessageButton(dialogButtons.ToMessageButton(), true, buttonLocalizer, defaultResult, cancelResult);
 }
 public static List<UICommand> GenerateFromMessageButton(MessageButton dialogButtons, IMessageButtonLocalizer buttonLocalizer, MessageResult? defaultButton = null, MessageResult? cancelButton = null) {
     return GenerateFromMessageButton(dialogButtons, false, buttonLocalizer, defaultButton, cancelButton);
 }
        static List <UICommand> GenerateFromMessageButton(MessageButton dialogButtons, bool usePlatformSpecificTag, IMessageButtonLocalizer buttonLocalizer, MessageResult?defaultButton, MessageResult?cancelButton)
        {
            List <UICommand> commands = new List <UICommand>();

            if (dialogButtons == MessageButton.OK)
            {
                UICommand okCommand = CreateDefaultButonCommand(MessageResult.OK, usePlatformSpecificTag, buttonLocalizer.Localize);
                okCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.OK;
                okCommand.IsCancel  = cancelButton == MessageResult.OK;

                commands.Add(okCommand);
                return(commands);
            }
            if (dialogButtons == MessageButton.OKCancel)
            {
                UICommand okCommand     = CreateDefaultButonCommand(MessageResult.OK, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand cancelCommand = CreateDefaultButonCommand(MessageResult.Cancel, usePlatformSpecificTag, buttonLocalizer.Localize);
                okCommand.IsDefault     = defaultButton == null || defaultButton == MessageResult.OK;
                cancelCommand.IsDefault = defaultButton == MessageResult.Cancel;
                okCommand.IsCancel      = cancelButton == MessageResult.OK;
                cancelCommand.IsCancel  = cancelButton == null || cancelButton == MessageResult.Cancel;

                commands.Add(okCommand);
                commands.Add(cancelCommand);
                return(commands);
            }
            if (dialogButtons == MessageButton.YesNo)
            {
                UICommand yesCommand = CreateDefaultButonCommand(MessageResult.Yes, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand noCommand  = CreateDefaultButonCommand(MessageResult.No, usePlatformSpecificTag, buttonLocalizer.Localize);
                yesCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.Yes;
                noCommand.IsDefault  = defaultButton == MessageResult.No;
                yesCommand.IsCancel  = cancelButton == MessageResult.Yes;
                noCommand.IsCancel   = cancelButton == null || cancelButton == MessageResult.No;

                commands.Add(yesCommand);
                commands.Add(noCommand);
                return(commands);
            }
            if (dialogButtons == MessageButton.YesNoCancel)
            {
                UICommand yesCommand    = CreateDefaultButonCommand(MessageResult.Yes, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand noCommand     = CreateDefaultButonCommand(MessageResult.No, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand cancelCommand = CreateDefaultButonCommand(MessageResult.Cancel, usePlatformSpecificTag, buttonLocalizer.Localize);
                yesCommand.IsDefault    = defaultButton == null || defaultButton == MessageResult.Yes;
                noCommand.IsDefault     = defaultButton == MessageResult.No;
                cancelCommand.IsDefault = defaultButton == MessageResult.Cancel;
                yesCommand.IsCancel     = cancelButton == MessageResult.Yes;
                noCommand.IsCancel      = cancelButton == null || cancelButton == MessageResult.No;
                cancelCommand.IsCancel  = cancelButton == null || cancelButton == MessageResult.Cancel;

                commands.Add(yesCommand);
                commands.Add(noCommand);
                commands.Add(cancelCommand);
                return(commands);
            }
#if NETFX_CORE
            if (dialogButtons == MessageButton.AbortRetryIgnore)
            {
                UICommand abortCommand  = CreateDefaultButonCommand(MessageResult.Abort, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand retryCommand  = CreateDefaultButonCommand(MessageResult.Retry, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand ignoreCommand = CreateDefaultButonCommand(MessageResult.Ignore, usePlatformSpecificTag, buttonLocalizer.Localize);
                abortCommand.IsDefault  = defaultButton == null || defaultButton == MessageResult.Abort;
                retryCommand.IsDefault  = defaultButton == MessageResult.Retry;
                ignoreCommand.IsDefault = defaultButton == MessageResult.Ignore;
                abortCommand.IsCancel   = cancelButton == MessageResult.Abort;
                retryCommand.IsCancel   = cancelButton == null || cancelButton == MessageResult.Retry;
                ignoreCommand.IsCancel  = cancelButton == null || cancelButton == MessageResult.Ignore;

                commands.Add(abortCommand);
                commands.Add(retryCommand);
                commands.Add(ignoreCommand);
                return(commands);
            }
            if (dialogButtons == MessageButton.Close)
            {
                UICommand closeCommand = CreateDefaultButonCommand(MessageResult.Close, usePlatformSpecificTag, buttonLocalizer.Localize);
                closeCommand.IsDefault = defaultButton == null || defaultButton == MessageResult.Close;
                closeCommand.IsCancel  = cancelButton == MessageResult.Close;

                commands.Add(closeCommand);
                return(commands);
            }
            if (dialogButtons == MessageButton.RetryCancel)
            {
                UICommand retryCommand  = CreateDefaultButonCommand(MessageResult.Retry, usePlatformSpecificTag, buttonLocalizer.Localize);
                UICommand cancelCommand = CreateDefaultButonCommand(MessageResult.Cancel, usePlatformSpecificTag, buttonLocalizer.Localize);
                retryCommand.IsDefault  = defaultButton == null || defaultButton == MessageResult.Retry;
                cancelCommand.IsDefault = defaultButton == MessageResult.Cancel;
                retryCommand.IsCancel   = cancelButton == MessageResult.Retry;
                cancelCommand.IsCancel  = cancelButton == null || cancelButton == MessageResult.Cancel;

                commands.Add(retryCommand);
                commands.Add(cancelCommand);
                return(commands);
            }
#endif
            return(commands);
        }