using System;
using System.Collections.ObjectModel;
using System.Windows.Input;
using System.Windows.Media.Imaging;
using Prism.Commands;

namespace Valg.EVA.Skanning.UserInterfaceElements.MessageBox
{
    public interface IMessageBoxViewModel
    {
        void Initialize(string messageBoxTitle, string messageBoxMessage, string possibleSolutionMessage, MessageBoxType messageBoxType, Exception[] errorException, DelegateCommand cancelCommand, ICommand[] solutionCommands);

        void Initialize(string messageBoxTitle, string messageBoxMessage, MessageBoxType messageBoxType, DelegateCommand confirmCommand, DelegateCommand cancelCommand);

        string TitleText { get; set; }

        string MessageText { get; set; }

        Collection<object> PossibleSolutionList { get; }

        BitmapImage ImageSource { get; set; }

        string TechnicalErrorMessage { get; }

        DelegateCommand ToggleViewTechnicalDataCommand { get; }

        DelegateCommand CancelCommand { get; }

        string CancelCommandButtonText { get; }

        string ConfirmCommandButtonText { get; }
    }
}
