private void btnUpdateCard_Click(object sender, EventArgs e) { if (ValidateDataInput()) { DataTransfer response = null; DataTransfer request = new DataTransfer(); Task <String> task; if (m_bRecharge) { RechargeDTO dtoRecharge = new RechargeDTO(); dtoRecharge.RechargeDate = dtpRechargeDate.Value; dtoRecharge.RechargeGas92Price = m_iPriceGas92; dtoRecharge.RechargeGas95Price = m_iPriceGas95; dtoRecharge.RechargeGasDOPrice = m_iPriceGasDO; dtoRecharge.RechargeMoney = Int32.Parse(txtCardMoney.Text.Trim()); dtoRecharge.RechargeMoneyEx = Int32.Parse(txtExMoney.Text.Trim()); dtoRecharge.RechargeNote = txtRechargeNote.Text.Trim(); dtoRecharge.CardID = txtCardID.Text.Trim(); request.ResponseDataRechargeDTO = dtoRecharge; task = SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterTask( () => { return(m_service.SGMManager_AddRechargeCard(JSonHelper.ConvertObjectToJSon(request))); }); SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterContinuation(task, () => { String stResponse = task.Result as String; response = JSonHelper.ConvertJSonToObject(stResponse); if (response.ResponseCode == DataTransfer.RESPONSE_CODE_SUCCESS) { task = SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterTask( () => { return(m_service.SGMManager_UpdateRechargeIDForCard(txtCardID.Text.Trim())); }); SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterContinuation(task, () => { stResponse = task.Result as String; response = JSonHelper.ConvertJSonToObject(stResponse); if (response.ResponseCode == DataTransfer.RESPONSE_CODE_SUCCESS) { task = SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterTask( () => { return(m_service.SGMManager_UpdateMoneyForCard(txtCardID.Text.Trim(), m_iCurrentCardMoney + Int32.Parse(txtCardMoney.Text.Trim()) + Int32.Parse(txtExMoney.Text.Trim()))); }); SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterContinuation(task, () => { stResponse = task.Result as String; response = JSonHelper.ConvertJSonToObject(stResponse); if (response.ResponseCode == DataTransfer.RESPONSE_CODE_SUCCESS) { this.Close(); } }, SynchronizationContext.Current); } }, SynchronizationContext.Current); } }, SynchronizationContext.Current); } else { CardDTO dtoCard = new CardDTO(); dtoCard.CardID = txtCardID.Text.Trim(); dtoCard.CardUnlockState = true; dtoCard.CardRemainingMoney = Int32.Parse(txtCardMoney.Text.Trim()); dtoCard.CardMoneyEx = 0; dtoCard.CardBuyDate = dtpRechargeDate.Value; dtoCard.RechargeID = -1; dtoCard.CustomerID = m_stCusID; request.ResponseDataCardDTO = dtoCard; task = SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterTask( () => { return(m_service.SGMManager_AddNewCard(JSonHelper.ConvertObjectToJSon(request))); }); SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterContinuation(task, () => { String stResponse = task.Result as String; response = JSonHelper.ConvertJSonToObject(stResponse); if (response.ResponseCode == DataTransfer.RESPONSE_CODE_SUCCESS) { RechargeDTO dtoRecharge = new RechargeDTO(); dtoRecharge.RechargeDate = dtpRechargeDate.Value; dtoRecharge.RechargeGas92Price = m_iPriceGas92; dtoRecharge.RechargeGas95Price = m_iPriceGas95; dtoRecharge.RechargeGasDOPrice = m_iPriceGasDO; dtoRecharge.RechargeMoney = Int32.Parse(txtCardMoney.Text.Trim()); dtoRecharge.RechargeNote = txtRechargeNote.Text.Trim(); dtoRecharge.CardID = txtCardID.Text.Trim(); request.ResponseDataRechargeDTO = dtoRecharge; task = SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterTask( () => { if (m_bChangeCard) { return(m_service.SGMManager_ChangeCard(m_stCardID, JSonHelper.ConvertObjectToJSon(request))); } else { return(m_service.SGMManager_AddRechargeCard(JSonHelper.ConvertObjectToJSon(request))); } }); SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterContinuation(task, () => { stResponse = task.Result as String; response = JSonHelper.ConvertJSonToObject(stResponse); if (response.ResponseCode == DataTransfer.RESPONSE_CODE_SUCCESS) { task = SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterTask( () => { return(m_service.SGMManager_UpdateRechargeIDForCard(txtCardID.Text.Trim())); }); SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterContinuation(task, () => { stResponse = task.Result as String; response = JSonHelper.ConvertJSonToObject(stResponse); if (response.ResponseCode == DataTransfer.RESPONSE_CODE_SUCCESS) { this.Close(); } else { frmMsg.ShowMsg(SGMText.SGM_ERROR, response.ResponseErrorMsg + " : " + response.ResponseErrorMsgDetail, SGMMessageType.SGM_MESSAGE_TYPE_ERROR); } }, SynchronizationContext.Current); } }, SynchronizationContext.Current); } }, SynchronizationContext.Current); } } }