using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Windows;
using System.Windows.Input;
using System.Windows.Threading;
using System.Reflection;
using SPC.Kiosk.Base;
using SPC.Kiosk.Common;
using SPC.Kiosk.Popup.Model;
using SPC.Kiosk.Payments;
namespace SPC.Kiosk.Popup.ViewModel
{
///
/// HappyPointCertify.xaml에 대한 ViewModel
///
public class VmNumPadPopup : PopupViewModelBase
{
#region [ Members ]
private List numPadGuidText;
///
/// Number Pad Input Guide Text
///
public List NumPadGuidText
{
get { return numPadGuidText; }
set { numPadGuidText = value; PropertyChange("NumPadGuidText"); }
}
private bool formated = false;
///
/// Input Text Formated
///
public bool Formated
{
get { return formated; }
set { formated = value; PropertyChange("Formated"); }
}
private bool isPassword = false;
///
/// Input Text Formated
///
public bool IsPassword
{
get { return isPassword; }
set { isPassword = value; PropertyChange("IsPassword"); }
}
private string inputNumbers = string.Empty;
///
/// Number Pad Input Number
///
public string InputNumbers
{
get { return inputNumbers; }
set { inputNumbers = value; PropertyChange("InputNumbers"); }
}
private double cancelButtonWidth = 270d;
///
/// Cancel Button Width
///
public double CancelButtonWidth
{
get { return cancelButtonWidth; }
set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); }
}
private List cancelButtonText;
///
/// Cancel Button Text
///
public List CancelButtonText
{
get { return cancelButtonText; }
set { cancelButtonText = value; PropertyChange("CancelButtonText"); }
}
private List okButtonText;
///
/// Ok Button Text
///
public List OkButtonText
{
get { return okButtonText; }
set { okButtonText = value; PropertyChange("OkButtonText"); }
}
public bool oKButtonEnabled = false;
///
/// OK Button enabled
///
public bool OKButtonEnabled
{
get { return oKButtonEnabled; }
set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); }
}
private double okButtonWidth = 270d;
///
/// OK Button Width
///
public double OKButtonWidth
{
get { return okButtonWidth; }
set { okButtonWidth = value; PropertyChange("OKButtonWidth"); }
}
public bool numPadInputVisible = false;
///
/// OK Button enabled
///
public bool NumPadInputVisible
{
get { return numPadInputVisible; }
set { numPadInputVisible = value; PropertyChange("NumPadInputVisible"); }
}
public bool numPadGuideVisible = true;
///
/// OK Button enabled
///
public bool NumPadGuideVisible
{
get { return numPadGuideVisible; }
set { numPadGuideVisible = value; PropertyChange("NumPadGuideVisible"); }
}
public int numPadMaxLength;
///
/// Number Pad Input Maxlength
///
public int NumPadMaxLength
{
get { return numPadMaxLength; }
set { numPadMaxLength = value; PropertyChange("NumPadMaxLength"); }
}
public int checkLength;
///
/// Number Pad Input Maxlength
///
public int CheckLength
{
get { return checkLength; }
set { checkLength = value; PropertyChange("CheckLength"); }
}
private List memberPointsHeaderText;
///
/// Cancel Button Text
///
public List MemberPointsHeaderText
{
get { return memberPointsHeaderText; }
set { memberPointsHeaderText = value; PropertyChange("MemberPointsHeaderText"); }
}
private string languageButttonImage;
///
/// Read Barcode Formated Text
///
public string LanguageButttonImage
{
get { return languageButttonImage; }
set { languageButttonImage = value; PropertyChange("LanguageButttonImage"); }
}
private bool languageButttonVisibel;
///
/// Language Select Button Visible
///
public bool LanguageButttonVisibel
{
get { return languageButttonVisibel; }
set { languageButttonVisibel = value; PropertyChange("LanguageButttonVisibel"); }
}
private CertifyWindowType certifyWindow = CertifyWindowType.CertifyStart;
///
/// Current View Window
///
public CertifyWindowType CertifyWindow
{
get { return certifyWindow; }
set { certifyWindow = value; PropertyChange("CertifyWindow"); }
}
private double popupWidth = 1300;
///
/// Popup Whidth (For Calculate OK Button Width)
///
public double PopupWidth
{
get { return popupWidth; }
set { popupWidth = value; PropertyChange("PopupWidth"); }
}
///
/// HappyPoint 인증 정보
///
public M_HappyPointReturn HappyPointReturn { get; set; }
///
/// OK Click Command
///
public ICommand OkCommand { get; protected set; }
///
/// Cancel Click Command
///
public ICommand CancelCommand { get; protected set; }
#endregion
#region [ Ctor ]
///
/// Ctor
///
public VmNumPadPopup()
{
OkCommand = new Command(OkCommandHandler);
CancelCommand = new Command(CancelCommandHandler);
this.PropertyChanged += VmHappyPointCertify_PropertyChanged;
OkButtonText = Languages.GetMessages("BTN0024");
CancelButtonText = Languages.GetMessages("BTN0033");
}
///
/// Dispose
///
public new void Dispose()
{
this.PropertyChanged -= VmHappyPointCertify_PropertyChanged;
base.Dispose();
}
#endregion Ctor
#region [ Method ]
#endregion Method
#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 = InputNumbers
};
CanWindowClose = true;
}
private void VmHappyPointCertify_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case "IsTimeout":
ReturnValue = new M_PopupReturn
{
OKAnswer = false,
TimeOut = true,
ReturnLanguage = ShowLanguageType,
PopupArgs = null
};
CanWindowClose = true;
break;
case "NumPadInputVisible":
NumPadGuideVisible = !NumPadInputVisible;
break;
case "InputNumbers":
NumPadInputVisible = InputNumbers.Length > 0;
if (CheckLength > 0 && CheckLength <= NumPadMaxLength)
{
OKButtonEnabled = CheckLength.Equals(InputNumbers.Length);
}
else
{
OKButtonEnabled = InputNumbers.Length > 0;
}
break;
case "PopupWidth":
OKButtonWidth = PopupWidth / 2;
CancelButtonWidth = PopupWidth / 2;
break;
}
}
#endregion Event Handlers
}
}