private void btnAdd_Click(object sender, EventArgs e) { if (btnAdd.Text.Equals("&Thêm")) { btnAdd.Text = "&Lưu"; UpdateStateControls(true); clearInput(); txtCusID.Focus(); } else { if (!ValidateDataInput()) { return; } CustomerDTO cus = new CustomerDTO(); cus.CustomerID = txtCusID.Text.Trim(); cus.CustomerName = txtCusName.Text.Trim(); cus.CustomerPhone = txtCusPhone.Text.Trim(); cus.CustomerBirthDate = txtCusBirthday.Text.Trim(); cus.CustomerVisa = txtCusVisa.Text.Trim(); cus.CustomerAddress = txtCusAddress.Text.Trim(); cus.CustomerNote = txtCusAddress.Text.Trim(); DataTransfer request = new DataTransfer(); request.ResponseDataCustomerDTO = cus; string jsRequest = JSonHelper.ConvertObjectToJSon(request); Task <String> task = SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterTask( () => { return(m_service.SGMManager_AddNewCustomer(jsRequest)); }); SGM_WaitingIdicator.WaitingForm.waitingFrm.progressReporter.RegisterContinuation(task, () => { String stResponse = task.Result as String; DataTransfer dataResponse = JSonHelper.ConvertJSonToObject(stResponse); if (dataResponse.ResponseCode != DataTransfer.RESPONSE_CODE_SUCCESS) { frmMSg.ShowMsg(SGMText.SGM_ERROR, dataResponse.ResponseErrorMsg + "\n" + dataResponse.ResponseErrorMsgDetail, SGMMessageType.SGM_MESSAGE_TYPE_ERROR); return; } LoadCustomerList(); SelectCustomeRow(cus.CustomerID); UpdateStateControls(false); btnAdd.Text = "&Thêm"; }, SynchronizationContext.Current); } }