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

1001 lines
39 KiB
C#

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 SPC.Kiosk.Base;
using SPC.Kiosk.Common;
using SPC.Kiosk.Popup.Model;
using SPC.Kiosk.Payments;
namespace SPC.Kiosk.Popup.ViewModel
{
/// <summary>
/// HappyPointUsing.xaml에 대한 ViewModel
/// </summary>
public class VmHappyPointUsing : PopupViewModelBase
{
#region [ Members ]
private enum ProcessingType
{
Certify,
PointUsing
}
private ProcessingType ProcessType { get; set; } = ProcessingType.Certify;
private string titileImage;
/// <summary>
/// Barcode Scan Image
/// </summary>
public string TitileImage
{
get { return titileImage; }
set { titileImage = value; PropertyChange("TitileImage"); }
}
private string wonIconImage;
/// <summary>
/// Won Icon Image
/// </summary>
public string WonIconImage
{
get { return wonIconImage; }
set { wonIconImage = value; PropertyChange("WonIconImage"); }
}
private string pointImage;
/// <summary>
/// Point Using Title Image
/// </summary>
public string PointImage
{
get { return pointImage; }
set { pointImage = value; PropertyChange("PointImage"); }
}
private string allUseNoramlBrush;
/// <summary>
/// All Use Button Normal Brush
/// </summary>
public string AllUseNoramlBrush
{
get { return allUseNoramlBrush; }
set { allUseNoramlBrush = value; PropertyChange("AllUseNoramlBrush"); }
}
private string allUseSwitchOnBrush;
/// <summary>
/// All Use Button Switch On Brush
/// </summary>
public string AllUseSwitchOnBrush
{
get { return allUseSwitchOnBrush; }
set { allUseSwitchOnBrush = value; PropertyChange("AllUseSwitchOnBrush"); }
}
public bool allUseSwitch = false;
/// <summary>
/// All Use Button Switch
/// </summary>
public bool AllUseSwitch
{
get { return allUseSwitch; }
set { allUseSwitch = value; PropertyChange("AllUseSwitch"); }
}
private List<M_Language> headerText;
/// <summary>
/// Top Header Text (first Grid)
/// </summary>
public List<M_Language> HeaderText
{
get { return headerText; }
set { headerText = value; PropertyChange("HeaderText"); }
}
private List<M_Language> scanGuidText;
/// <summary>
/// Second Header Text (first Grid)
/// </summary>
public List<M_Language> ScanGuidText
{
get { return scanGuidText; }
set { scanGuidText = value; PropertyChange("ScanGuidText"); }
}
private List<M_Language> infoGuid1Text;
/// <summary>
/// Bootom first infomation text (first Grid)
/// </summary>
public List<M_Language> InfoGuid1Text
{
get { return infoGuid1Text; }
set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); }
}
private List<M_Language> infoGuid2Text;
/// <summary>
/// Bottom second infomation text (first Grid)
/// </summary>
public List<M_Language> InfoGuid2Text
{
get { return infoGuid2Text; }
set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); }
}
private string processingGIF;
/// <summary>
/// Processing GIF
/// </summary>
public string ProcessingGIF
{
get { return processingGIF; }
set { processingGIF = value; PropertyChange("ProcessingGIF"); }
}
private string errorImage;
/// <summary>
/// Error Icon
/// </summary>
public string ErrorImage
{
get { return errorImage; }
set { errorImage = value; PropertyChange("ErrorImage"); }
}
private string successImage;
/// <summary>
/// Sucess Icon
/// </summary>
public string SuccessImage
{
get { return successImage; }
set { successImage = value; PropertyChange("SuccessImage"); }
}
public bool certifyStartVisible = false;
/// <summary>
/// 인증 시작 화면 Visible
/// </summary>
public bool CertifyStartVisible
{
get { return certifyStartVisible; }
set { certifyStartVisible = value; PropertyChange("CertifyStartVisible"); }
}
public bool pointUsingVisible = false;
/// <summary>
/// Point Using Window Visible
/// </summary>
public bool PointUsingVisible
{
get { return pointUsingVisible; }
set { pointUsingVisible = value; PropertyChange("PointUsingVisible"); }
}
public bool processingVisible = false;
/// <summary>
/// 처리 진행 화면 Visible
/// </summary>
public bool ProcessingVisible
{
get { return processingVisible; }
set { processingVisible = value; PropertyChange("ProcessingVisible"); }
}
public bool processingErrorVisible = false;
/// <summary>
/// 인증 오류 화면 Visible
/// </summary>
public bool ProcessingErrorVisible
{
get { return processingErrorVisible; }
set { processingErrorVisible = value; PropertyChange("ProcessingErrorVisible"); }
}
public bool certifySuccessVisible = false;
/// <summary>
/// 인증 완료 화면 Visible
/// </summary>
public bool CertifySuccessVisible
{
get { return certifySuccessVisible; }
set { certifySuccessVisible = value; PropertyChange("CertifySuccessVisible"); }
}
private List<M_Language> pointPadGuidText;
/// <summary>
/// Point Pad Input Guide Text
/// </summary>
public List<M_Language> PointPadGuidText
{
get { return pointPadGuidText; }
set { pointPadGuidText = value; PropertyChange("PointPadGuidText"); }
}
private List<M_Language> totalPayHeaderText;
/// <summary>
/// Payments Total Header Text
/// </summary>
public List<M_Language> TotalPayHeaderText
{
get { return totalPayHeaderText; }
set { totalPayHeaderText = value; PropertyChange("TotalPayHeaderText"); }
}
private List<M_Language> queryPointsHeaderText;
/// <summary>
/// Member Point Header Text
/// </summary>
public List<M_Language> QueryPointsHeaderText
{
get { return queryPointsHeaderText; }
set { queryPointsHeaderText = value; PropertyChange("QueryPointsHeaderText"); }
}
private List<M_Language> processingMessageText;
/// <summary>
/// Number Pad Input Guide Text
/// </summary>
public List<M_Language> ProcessingMessageText
{
get { return processingMessageText; }
set { processingMessageText = value; PropertyChange("ProcessingMessageText"); }
}
private List<M_Language> processingGuide;
/// <summary>
/// Processing Guide Text
/// </summary>
public List<M_Language> ProcessingGuide
{
get { return processingGuide; }
set { processingGuide = value; PropertyChange("ProcessingGuide"); }
}
private List<M_Language> errorGuide;
/// <summary>
/// Error Guide Text
/// </summary>
public List<M_Language> ErrorGuide
{
get { return errorGuide; }
set { errorGuide = value; PropertyChange("ErrorGuide"); }
}
private List<M_Language> successText;
/// <summary>
/// Sucess Guide Text
/// </summary>
public List<M_Language> SuccessText
{
get { return successText; }
set { successText = value; PropertyChange("SuccessText"); }
}
private double queryPoints;
/// <summary>
/// Member Points
/// </summary>
public double QueryPoints
{
get { return queryPoints; }
set { queryPoints = value; PropertyChange("QueryPoints"); }
}
private double usingPoints;
/// <summary>
/// Using Points
/// </summary>
public double UsingPoints
{
get { return usingPoints; }
set { usingPoints = value; PropertyChange("UsingPoints"); }
}
private double payments;
/// <summary>
/// Payments Total
/// </summary>
public double Payments
{
get { return payments; }
set { payments = value; PropertyChange("Payments"); }
}
private List<M_Language> errorText;
/// <summary>
/// Error Text
/// </summary>
public List<M_Language> ErrorText
{
get { return errorText; }
set { errorText = value; PropertyChange("ErrorText"); }
}
private bool isErrorBlink = false;
/// <summary>
/// Is Error Text Blink
/// </summary>
public bool IsErrorBlink
{
get { return isErrorBlink; }
set { isErrorBlink = value; PropertyChange("IsErrorBlink"); }
}
private string formatedBarCode;
/// <summary>
/// Read Barcoe Formated Text
/// </summary>
public string FormatedBarCode
{
get { return formatedBarCode; }
set { formatedBarCode = value; PropertyChange("FormatedBarCode"); }
}
private string readBarCode;
/// <summary>
/// Read BarCode
/// </summary>
public string ReadBarCode
{
get { return readBarCode; }
set { readBarCode = value; PropertyChange("ReadBarCode"); }
}
private string inputPoints = string.Empty;
/// <summary>
/// Input Using Point Text
/// </summary>
public string InputPoints
{
get { return inputPoints; }
set { inputPoints = value; PropertyChange("InputPoints"); }
}
public bool numPadInputVisible = false;
/// <summary>
/// Number Pad Points Visible
/// </summary>
public bool NumPadInputVisible
{
get { return numPadInputVisible; }
set { numPadInputVisible = value; PropertyChange("NumPadInputVisible"); }
}
public bool numPadGuideVisible = true;
/// <summary>
/// Nummber Pad Guid Visible
/// </summary>
public bool NumPadGuideVisible
{
get { return numPadGuideVisible; }
set { numPadGuideVisible = value; PropertyChange("NumPadGuideVisible"); }
}
private List<M_Language> allUseButtonText;
/// <summary>
/// All Point Using Button text
/// </summary>
public List<M_Language> AllUseButtonText
{
get { return allUseButtonText; }
set { allUseButtonText = value; PropertyChange("AllUseButtonText"); }
}
private List<M_Language> cancelButtonText;
/// <summary>
/// Cancel Button Text
/// </summary>
public List<M_Language> CancelButtonText
{
get { return cancelButtonText; }
set { cancelButtonText = value; PropertyChange("CancelButtonText"); }
}
private double cancelButtonWidth = 270d;
/// <summary>
/// Cancel Button Width
/// </summary>
public double CancelButtonWidth
{
get { return cancelButtonWidth; }
set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); }
}
private double okButtonWidth = 270d;
/// <summary>
/// OK Button Width
/// </summary>
public double OKButtonWidth
{
get { return okButtonWidth; }
set { okButtonWidth = value; PropertyChange("OKButtonWidth"); }
}
private List<M_Language> okButtonText;
/// <summary>
/// OK Button Text
/// </summary>
public List<M_Language> OkButtonText
{
get { return okButtonText; }
set { okButtonText = value; PropertyChange("OkButtonText"); }
}
public bool oKButtonEnabled = false;
/// <summary>
/// OK Button Enabled
/// </summary>
public bool OKButtonEnabled
{
get { return oKButtonEnabled; }
set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); }
}
private int pointPadMaxLength;
/// <summary>
/// Point Pad Input Max Length
/// </summary>
public int PointPadMaxLength
{
get { return pointPadMaxLength; }
set { pointPadMaxLength = value; PropertyChange("PointPadMaxLength"); }
}
private string certifyPassword = string.Empty;
public string CertifyPassword
{
get { return certifyPassword; }
set { certifyPassword = value; PropertyChange("CertifyPassword"); }
}
public bool isOpenPasswordWindow = false;
/// <summary>
/// Password Window Open
/// </summary>
public bool IsOpenPasswordWindow
{
get { return isOpenPasswordWindow; }
set { isOpenPasswordWindow = value; PropertyChange("IsOpenPasswordWindow"); }
}
private PointUsingWindowType pointUsingWindow = PointUsingWindowType.CertifyStart;
/// <summary>
/// Current View Window
/// </summary>
public PointUsingWindowType PointUsingWindow
{
get { return pointUsingWindow; }
set { pointUsingWindow = value; PropertyChange("PointUsingWindow"); }
}
private double popupWidth = 1300;
/// <summary>
/// Popup Whidth (For Calculate OK Button Width)
/// </summary>
public double PopupWidth
{
get { return popupWidth; }
set { popupWidth = value; PropertyChange("PopupWidth"); }
}
private M_HappyPointReturn happyPointReturn;
/// <summary>
/// HappyPoint 인증 정보
/// </summary>
public M_HappyPointReturn HappyPointReturn
{
get { return happyPointReturn; }
set { happyPointReturn = value; PropertyChange("HappyPointReturn"); }
}
/// <summary>
/// OK Click Command
/// </summary>
public ICommand OkCommand { get; protected set; }
/// <summary>
/// Cancel Click Command
/// </summary>
public ICommand CancelCommand { get; protected set; }
/// <summary>
/// All Points Using Click Command
/// </summary>
public ICommand AllUseCommand { get; protected set; }
public bool ImmediatelyClose { get; protected set; } = false;
private bool ProcessStart = false;
private posHappyPoint posHappyPoint = null;
private Task ProcessTask = null;
private string certifyKey = string.Empty;
private double queryUsingPoints = 0d;
private double canUseAllPoints = 0d;
private int passCheckLength = 4;
#endregion Members
#region [ Ctor ]
/// <summary>
/// Ctor
/// </summary>
public VmHappyPointUsing()
{
OkCommand = new Command(OkCommandHandler);
CancelCommand = new Command(CancelCommandHandler);
AllUseCommand = new Command(AllUseCommandHandler);
this.PropertyChanged += VmHappyPointUsing_PropertyChanged;
TitileImage = ResourceManager.GetNximagePathAdd("img_gif_barcode_happy.gif", CommonValue.PBdesignImagesPath);
WonIconImage = ResourceManager.GetNximagePathAdd("ic_won.png", CommonValue.PBdesignImagesPath);
PointImage = ResourceManager.GetNximagePathAdd("img_point.png", CommonValue.PBdesignImagesPath);
ProcessingGIF = ResourceManager.GetNximagePathAdd("ic_alert_ing2.gif", CommonValue.PBdesignImagesPath);
ErrorImage = ResourceManager.GetNximagePathAdd("ic_alert_error.png", CommonValue.PBdesignImagesPath);
SuccessImage = ResourceManager.GetNximagePathAdd("ic_alert_check.png", CommonValue.PBdesignImagesPath);
AllUseNoramlBrush = ResourceManager.GetNximagePathAdd("btn_number_all_n.png", CommonValue.PBdesignImagesPath);
AllUseSwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_number_all_p.png", CommonValue.PBdesignImagesPath);
ErrorText = new List<M_Language>();
OkButtonText = Languages.GetMessages("BTN0024");
CancelButtonText = Languages.GetMessages("BTN0033");
AllUseButtonText = Languages.GetMessages("LBL0045");
HeaderText = Languages.GetMessages("LBL0135");
ProcessingMessageText = Languages.GetMessages("LBL0087");
ProcessingGuide = Languages.GetMessages("LBL0028");
ErrorGuide = Languages.GetMessages("LBL0028");
PointPadMaxLength = 9;
PointPadGuidText = Languages.GetMessages("LBL0059");
TotalPayHeaderText = Languages.GetMessages("LBL0112");
posHappyPoint = new posHappyPoint();
}
/// <summary>
/// Dispose
/// </summary>
public new void Dispose()
{
TitileImage = string.Empty;
PointImage = string.Empty;
ProcessingGIF = string.Empty;
ErrorImage = string.Empty;
AllUseNoramlBrush = string.Empty;
AllUseSwitchOnBrush = string.Empty;
this.PropertyChanged -= VmHappyPointUsing_PropertyChanged;
if (ProcessTask != null)
{
ProcessTask.Dispose();
ProcessTask = null;
}
if (posHappyPoint != null)
{
HappyPointRemoveEvents();
posHappyPoint.Dispose();
posHappyPoint = null;
}
base.Dispose();
}
#endregion Ctor
#region [ Methods ]
private void TestDelay()
{
Thread.Sleep(3000);
}
private void HappyPointCreateEvents()
{
if (posHappyPoint != null)
{
posHappyPoint.ReadStart += PosHappyPoint_ReadStart;
posHappyPoint.ReadEnd += PosHappyPoint_ReadEnd;
posHappyPoint.ErrorEvent += PosHappyPoint_ErrorEvent;
posHappyPoint.ErrorMessageEvent += PosHappyPoint_ErrorMessageEvent;
}
}
private void HappyPointRemoveEvents()
{
if (posHappyPoint != null)
{
posHappyPoint.ReadStart -= PosHappyPoint_ReadStart;
posHappyPoint.ReadEnd -= PosHappyPoint_ReadEnd;
posHappyPoint.ErrorEvent -= PosHappyPoint_ErrorEvent;
posHappyPoint.ErrorMessageEvent -= PosHappyPoint_ErrorMessageEvent;
}
}
private void DoHappyPointCertify()
{
HappyPointCreateEvents();
var processTask = new Task(() => posHappyPoint.StartCertifyProcessing(certifyKey));
processTask.Start();
processTask.Wait();
HappyPointRemoveEvents();
processTask = null;
}
private void DoHappyPointUsing()
{
if (posHappyPoint != null)
{
HappyPointCreateEvents();
var processTask = new Task(() => posHappyPoint.StartPaymentProcessing(HappyPointReturn.MemberCode
,double.Parse(InputPoints)
,CertifyPassword));
processTask.Start();
processTask.Wait();
HappyPointRemoveEvents();
processTask = null;
}
}
private bool PointValueCheck()
{
bool result = false;
try
{
if (!Payments.Equals(0) && QueryPoints >= 100)
{
var checkValue = double.Parse(InputPoints);
if (checkValue >= 100)
{
result = (checkValue % 10).Equals(0)
&& checkValue <= QueryPoints
&& checkValue <= Payments;
}
}
}
catch (Exception ex)
{
CommonLog.ErrorLogWrite(this, "PointValueCheck()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace));
result = false;
}
return result;
}
#endregion Methods
#region [ Event Handlers ]
private void AllUseCommandHandler(object obj)
{
TimerEnabled = false;
if (QueryPoints > 100)
{
canUseAllPoints = QueryPoints - QueryPoints % 10;
if (!Payments.Equals(0))
{
if (Payments < canUseAllPoints)
{
InputPoints = Payments.ToString();
}
else
{
InputPoints = canUseAllPoints.ToString();
}
}
}
TimerEnabled = true;
}
private void CancelCommandHandler(object obj)
{
TimerEnabled = false;
ReturnValue = new M_PopupReturn
{
OKAnswer = false,
TimeOut = false,
ReturnLanguage = ShowLanguageType,
PopupArgs = HappyPointReturn is M_HappyPointReturn && HappyPointReturn.ReservePoint
? HappyPointReturn
: null
};
CanWindowClose = true;
}
private void OkCommandHandler(object obj)
{
switch (PointUsingWindow)
{
case PointUsingWindowType.PointUsing:
queryUsingPoints = double.Parse(InputPoints);
if (HappyPointReturn is M_HappyPointReturn && HappyPointReturn.NeedPassword)
{
IsOpenPasswordWindow = true;
}
else
{
PointUsingWindow = PointUsingWindowType.Processing;
}
break;
case PointUsingWindowType.ProcessingError:
switch (ProcessType)
{
case ProcessingType.Certify:
PointUsingWindow = PointUsingWindowType.CertifyStart;
break;
case ProcessingType.PointUsing:
InputPoints = string.Empty;
PointUsingWindow = PointUsingWindowType.PointUsing;
break;
}
break;
case PointUsingWindowType.CertifySuccess:
if (ProcessTask != null) ProcessTask.Wait();
CanWindowClose = true;
break;
}
}
private void PosHappyPoint_ErrorMessageEvent(string ErrorString)
{
ErrorText = new List<M_Language>
{
new M_Language
{
Type = SupportLanguageType.ko,
LanguageData = ErrorString.Replace("\n"," ").Replace("\r","")
},
};
IsErrorBlink = true;
PointUsingWindow = PointUsingWindowType.ProcessingError;
}
private void PosHappyPoint_ErrorEvent(posHappyPoint.ErrorCode _errorCode)
{
//TODO: 공통에 에러 메세지 등록 필요
//ErrorText = Languages.GetMessages(_errorCode.ToString());
ErrorText = new List<M_Language>
{
new M_Language
{
Type = SupportLanguageType.ko,
LanguageData = _errorCode.ToString()
},
};
IsErrorBlink = true;
PointUsingWindow = PointUsingWindowType.ProcessingError;
}
private void PosHappyPoint_ReadStart(object sender)
{
TimerEnabled = false;
ProcessStart = true;
}
private void PosHappyPoint_ReadEnd(object sender)
{
ProcessStart = false;
try
{
if (sender is posHappyPoint getPosposHappyPoint)
{
if (getPosposHappyPoint.ProcessOK)
{
switch (ProcessType)
{
case ProcessingType.Certify:
HappyPointReturn = new M_HappyPointReturn
{
IsCompanyMember = getPosposHappyPoint.IsCompanyMember,
MemberName = getPosposHappyPoint.MemberName,
MemberNumber = getPosposHappyPoint.MemberNumber,
MemberCode = getPosposHappyPoint.CertifyKey,
IsAppMamber = getPosposHappyPoint.IsAppMamber,
MemberLevel = getPosposHappyPoint.MemberLevel.StartsWith("VIP")
? HappyPointMemberLevel.VIP
: getPosposHappyPoint.MemberLevel.StartsWith("G")
? HappyPointMemberLevel.Gold
: HappyPointMemberLevel.Pink,
MemberPoint = getPosposHappyPoint.MemberPoint,
UseablePoint = getPosposHappyPoint.UseablePoint,
NeedPassword = getPosposHappyPoint.NeedPassword,
ReservePoint = HappyPointReturn is M_HappyPointReturn
? HappyPointReturn.ReservePoint
: false,
};
QueryPoints = HappyPointReturn.MemberPoint;
PointUsingWindow = PointUsingWindowType.PointUsing;
break;
case ProcessingType.PointUsing:
if (HappyPointReturn is M_HappyPointReturn)
{
HappyPointReturn.PointUse = true;
HappyPointReturn.UsingPoints = getPosposHappyPoint.ApprovalPoint;
HappyPointReturn.PaySEQ = getPosposHappyPoint.PaySEQ;
}
ReturnValue = new M_PopupReturn
{
OKAnswer = true,
TimeOut = false,
ReturnLanguage = ShowLanguageType,
PopupArgs = HappyPointReturn
};
UsingPoints = HappyPointReturn.UsingPoints;
PointUsingWindow = PointUsingWindowType.CertifySuccess;
break;
}
}
}
}
catch
{
throw;
}
finally
{
TimerEnabled = true;
}
}
private void VmHappyPointUsing_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
try
{
switch (e.PropertyName)
{
case "IsTimeout":
if (IsTimeout)
{
switch (PointUsingWindow)
{
case PointUsingWindowType.CertifyStart:
case PointUsingWindowType.PointUsing:
case PointUsingWindowType.ProcessingError:
ReturnValue = new M_PopupReturn
{
OKAnswer = false,
TimeOut = true,
ReturnLanguage = ShowLanguageType,
PopupArgs = HappyPointReturn
};
break;
}
if (ProcessTask != null) ProcessTask.Wait();
CanWindowClose = true;
}
break;
case "PointUsingWindow":
CertifyStartVisible = false;
PointUsingVisible = false;
ProcessingVisible = false;
ProcessingErrorVisible = false;
CertifySuccessVisible = false;
switch (PointUsingWindow)
{
case PointUsingWindowType.CertifyStart:
CertifyStartVisible = true;
break;
case PointUsingWindowType.PointUsing:
PointUsingVisible = true;
break;
case PointUsingWindowType.Processing:
ProcessingVisible = true;
break;
case PointUsingWindowType.ProcessingError:
ProcessingErrorVisible = true;
break;
case PointUsingWindowType.CertifySuccess:
CertifySuccessVisible = true;
break;
}
break;
case "CertifyStartVisible":
if (CertifyStartVisible)
{
ScanGuidText = Languages.GetMessages("LBL0129");
InfoGuid1Text = new List<M_Language>();
InfoGuid2Text = Languages.GetMessages("LBL0003");
ProcessType = ProcessingType.Certify;
CancelButtonWidth = PopupWidth;
OKButtonWidth = 0d;
OKButtonEnabled = false;
CancelButtonText = Languages.GetMessages("BTN0033");
TimeOutSeconds = CommonValue.TimeOutSeconds;
}
break;
case "PointUsingVisible":
if (PointUsingVisible)
{
ScanGuidText = Languages.GetMessages("LBL0063");
InfoGuid1Text = new List<M_Language>();
InfoGuid2Text = Languages.GetMessages("LBL0001");
ProcessType = ProcessingType.PointUsing;
CancelButtonWidth = PopupWidth / 2;
OKButtonWidth = PopupWidth / 2;
OKButtonEnabled = false;
OkButtonText = Languages.GetMessages("BTN0024");
CancelButtonText = Languages.GetMessages("BTN0033");
TimeOutSeconds = CommonValue.TimeOutSeconds;
}
break;
case "ProcessingVisible":
if (ProcessingVisible)
{
ScanGuidText = new List<M_Language>();
InfoGuid1Text = new List<M_Language>();
InfoGuid2Text = new List<M_Language>();
CancelButtonWidth = 0d;
OKButtonWidth = 0d;
if (ProcessTask != null) ProcessTask.Wait();
switch (ProcessType)
{
case ProcessingType.Certify:
ProcessTask = new Task(DoHappyPointCertify);
break;
case ProcessingType.PointUsing:
ProcessTask = new Task(DoHappyPointUsing);
break;
}
ProcessTask.Start();
}
break;
case "ProcessingErrorVisible":
if (ProcessingErrorVisible)
{
switch (ProcessType)
{
case ProcessingType.Certify:
ScanGuidText = Languages.GetMessages("LBL0077");
break;
case ProcessingType.PointUsing:
ScanGuidText = Languages.GetMessages("LBL0077");
break;
}
InfoGuid1Text = new List<M_Language>();
InfoGuid2Text = new List<M_Language>();
CancelButtonWidth = PopupWidth / 2;
OKButtonWidth = PopupWidth / 2;
OKButtonEnabled = true;
OkButtonText = Languages.GetMessages("BTN0007");
CancelButtonText = Languages.GetMessages("BTN0033");
TimeOutSeconds = 10d;
}
break;
case "CertifySuccessVisible":
if (CertifySuccessVisible)
{
if (HappyPointReturn is M_HappyPointReturn
&& HappyPointReturn.PointUse
&& HappyPointReturn.UsingPoints.Equals(Payments))
{
ScanGuidText = new List<M_Language>();
SuccessText = Languages.GetMessages("LBL0093");
InfoGuid1Text = new List<M_Language>();
InfoGuid2Text = new List<M_Language>();
ImmediatelyClose = true;
TimeOutSeconds = 0d;
}
else
{
ScanGuidText = new List<M_Language>();
SuccessText = Languages.GetMessages("LBL0093");
InfoGuid1Text = new List<M_Language>();
InfoGuid2Text = new List<M_Language>();
CancelButtonWidth = 0d;
OkButtonText = Languages.GetMessages("BTN0039");
OKButtonWidth = PopupWidth;
OKButtonEnabled = true;
TimeOutSeconds = 5d;
}
}
break;
case "HappyPointReturn":
if (HappyPointReturn != null)
{
QueryPoints = HappyPointReturn.MemberPoint;
}
break;
case "NumPadInputVisible":
NumPadGuideVisible = !NumPadInputVisible;
break;
case "InputPoints":
if (canUseAllPoints > 0d)
{
AllUseSwitch = canUseAllPoints.ToString().Equals(InputPoints);
}
else
{
AllUseSwitch = false;
}
NumPadInputVisible = InputPoints.Length > 0;
OKButtonEnabled = PointValueCheck();
break;
case "ReadBarCode":
if (!ProcessStart)
{
switch (ReadBarCode.Length)
{
case 16:
case 17:
certifyKey = ReadBarCode.Substring(0, 16);
InputPoints = string.Empty;
FormatedBarCode = ReadBarCode.GetEncriptCardNo();
PointUsingWindow = PointUsingWindowType.Processing;
break;
default:
FormatedBarCode = string.Empty;
OKButtonEnabled = false;
break;
}
}
break;
case "CertifyPassword":
if (HappyPointReturn is M_HappyPointReturn && HappyPointReturn.NeedPassword
&& CertifyPassword.Length.Equals(passCheckLength))
{
PointUsingWindow = PointUsingWindowType.Processing;
}
break;
}
}
catch (Exception ex)
{
CommonLog.ErrorLogWrite(this, "VmHappyPointUsing_PropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace));
}
}
#endregion Event Handlers
}
}