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 } }