spc-kiosk-pb/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMiniPopup.cs
2019-06-16 14:12:09 +09:00

235 lines
8.0 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Input;
using System.Windows.Threading;
using SPC.Kiosk.Base;
using SPC.Kiosk.Common;
using SPC.Kiosk.Popup.Model;
namespace SPC.Kiosk.Popup.ViewModel
{
/// <summary>
/// CallEmployee.xaml 의 ViewModel
/// </summary>
public class VmMiniPopup : PopupViewModelBase
{
#region [ Members ]
private M_MiniPopup miniPopup;
/// <summary>
/// Parameters
/// </summary>
public M_MiniPopup MiniPopup
{
get { return miniPopup; }
set { miniPopup = value; PropertyChange("MiniPopup"); }
}
private string iconNoramlBrush = string.Empty;
/// <summary>
/// Message Text
/// </summary>
public string IconNoramlBrush
{
get { return iconNoramlBrush; }
set { iconNoramlBrush = value; PropertyChange("IconNoramlBrush"); }
}
private List<M_Language> messageText = null;
/// <summary>
/// Message Text
/// </summary>
public List<M_Language> MessageText
{
get { return messageText; }
set { messageText = value; PropertyChange("MessageText"); }
}
private List<M_Language> subMessageText = null;
/// <summary>
/// SubMessage Text
/// </summary>
public List<M_Language> SubMessageText
{
get { return subMessageText; }
set { subMessageText = value; PropertyChange("SubMessageText"); }
}
private List<M_Language> cancelButtonText;
/// <summary>
/// Cancel Button Text
/// </summary>
public List<M_Language> CancelButtonText
{
get { return cancelButtonText; }
set { cancelButtonText = value; PropertyChange("CancelButtonText"); }
}
private List<M_Language> okButtonText;
/// <summary>
/// OK Button Text
/// </summary>
public List<M_Language> OkButtonText
{
get { return okButtonText; }
set { okButtonText = value; PropertyChange("OkButtonText"); }
}
private double okButtonWidth = 400d;
/// <summary>
/// OK Button Width
/// </summary>
public double OkButtonWidth
{
get { return okButtonWidth; }
set { okButtonWidth = value; PropertyChange("OkButtonWidth"); }
}
private double cancelButtonWidth = 400d;
/// <summary>
/// OK Button Width
/// </summary>
public double CancelButtonWidth
{
get { return cancelButtonWidth; }
set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); }
}
/// <summary>
/// OK Click Command
/// </summary>
public ICommand OkCommand { get; protected set; }
/// <summary>
/// Cancel Click Command
/// </summary>
public ICommand CancelCommand { get; protected set; }
#endregion Members
#region [ Ctor ]
/// <summary>
/// Ctor
/// </summary>
public VmMiniPopup()
{
OkCommand = new Command(OkCommandHandler);
CancelCommand = new Command(CancelCommandHandler);
this.PropertyChanged += VmMiniPopup_PropertyChanged;
}
~VmMiniPopup()
{
this.PropertyChanged -= VmMiniPopup_PropertyChanged;
}
#endregion Ctor
#region [ Methods ]
private void SetMiniPopup()
{
if (MiniPopup is M_MiniPopup)
{
ShowLanguageType = MiniPopup.DisplayLanguage;
MessageText = MiniPopup.Message;
SubMessageText = MiniPopup.SubMessage;
OkButtonText = MiniPopup.OkButtonText;
CancelButtonText = MiniPopup.CencalButtonText;
TimeOutSeconds = MiniPopup.TimeoutSeconds;
IsTimeoutPopup = MiniPopup.IsTimeoutPopup;
var iconBrush = "Transparent";
switch (MiniPopup.Icon)
{
case MiniPopupIcon.Cancel:
iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_cancel.png", CommonValue.PBdesignImagesPath);
break;
case MiniPopupIcon.Delete:
iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_delete.png", CommonValue.PBdesignImagesPath);
break;
case MiniPopupIcon.ListCancel:
iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_listcancel.png", CommonValue.PBdesignImagesPath);
break;
case MiniPopupIcon.DiscountCancel:
iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_discountcancel.png", CommonValue.PBdesignImagesPath);
break;
case MiniPopupIcon.GiftCancel:
iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_giftcancel.png", CommonValue.PBdesignImagesPath);
break;
case MiniPopupIcon.OrderCancel:
iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_ordercancel.png", CommonValue.PBdesignImagesPath);
break;
case MiniPopupIcon.AddCoupon:
iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_coupon.png", CommonValue.PBdesignImagesPath);
break;
case MiniPopupIcon.Payment:
iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_payment.png", CommonValue.PBdesignImagesPath);
break;
default:
iconBrush = "Transparent";
break;
}
IconNoramlBrush = iconBrush;
if (!MiniPopup.IsCencalButton)
{
OkButtonWidth = 800d;
CancelButtonWidth = 0d;
}
else
{
OkButtonWidth = 400d;
CancelButtonWidth = 400d;
}
}
}
#endregion Methods
#region [ Event Handlers ]
private void CancelCommandHandler(object obj)
{
TimerEnabled = false;
ReturnValue = new M_PopupReturn
{
OKAnswer = false,
TimeOut = false,
ReturnLanguage = ShowLanguageType,
PopupArgs = null
};
CanWindowClose = true;
}
private void OkCommandHandler(object obj)
{
TimerEnabled = false;
ReturnValue = new M_PopupReturn
{
OKAnswer = true,
TimeOut = false,
ReturnLanguage = ShowLanguageType,
PopupArgs = null
};
CanWindowClose = true;
}
private void VmMiniPopup_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case "IsTimeout":
if (IsTimeout)
{
ReturnValue = new M_PopupReturn
{
OKAnswer = false,
TimeOut = true,
ReturnLanguage = ShowLanguageType,
PopupArgs = null
};
CanWindowClose = true;
}
break;
case "MiniPopup":
SetMiniPopup();
break;
}
}
#endregion Event Handlers
}
}