Source

main / Source / Excel / Excel.AddIn / Excel.AddIn / Helpers / AlertHelper.cs

using System;
using DataUp.Excel.BizLogic;

namespace DataUp.Excel.Addin
{
    public static class AlertHelper
    {
        public static AlertResult ShowAlert(AlertType alertType, string message, string generateButtonName, string ignoreButtonName, bool showIgnore = true)
        {
            AlertResult result = AlertResult.Cancel;

            AlertViewModel alertViewModel = new AlertViewModel(alertType, message, generateButtonName, ignoreButtonName, showIgnore);

            AlertMessage alert = new AlertMessage();
            System.Windows.Interop.WindowInteropHelper helper = new System.Windows.Interop.WindowInteropHelper(alert);
            helper.Owner = (IntPtr)ThisAddIn.ExcelApplication.Hwnd;

            alertViewModel.RequestClose += new EventHandler(alert.OnRequestClose);
            alertViewModel.Ignore += new EventHandler(alert.OnIgnore);
            alertViewModel.CancelClose += new EventHandler(alert.OnCancel);

            alert.Model = alertViewModel;
            alert.UpdateLayout();
            alert.ShowDialog();

            if (alert.DialogResult.HasValue && alert.DialogResult.Value)
            {
                result = AlertResult.Generate;
            }
            else
            {
                if (alert.IsCancelButtonClicked)
                {
                    result = AlertResult.Cancel;
                }
                else
                {
                    result = AlertResult.Ignore;
                }
            }

            alertViewModel.RequestClose -= new EventHandler(alert.OnRequestClose);
            alertViewModel.Ignore -= new EventHandler(alert.OnIgnore);
            alertViewModel.CancelClose -= new EventHandler(alert.OnCancel);
            alert.Close();

            return result;
        }
    }
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.