Пример #1
0
        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);
                }
            }
        }