private void Sign()
        {
            signRequest = new SignRequest
            {
                POSVendor             = "Inspur",
                PosSerialNumber       = Config.PosSerialNumber,
                IssueTime             = DateTime.Now.ToString("yyyyMMddHHmmss"),
                SaleType              = 0,
                LocalPurchaseOrder    = "1000582782",
                Cashier               = Credit.Cashier,
                BuyerTPIN             = string.IsNullOrWhiteSpace(Credit.Buyer.Tin) ? "" : Credit.Buyer.Tin,
                BuyerName             = string.IsNullOrWhiteSpace(Credit.Buyer.Name) ? "" : Credit.Buyer.Name,
                BuyerTaxAccountName   = "",
                BuyerAddress          = string.IsNullOrWhiteSpace(Credit.Buyer.Address) ? "" : Credit.Buyer.Address,
                BuyerTel              = string.IsNullOrWhiteSpace(Credit.Buyer.TelPhone) ? "" : Credit.Buyer.TelPhone,
                OriginalInvoiceCode   = "",
                OriginalInvoiceNumber = ""
            };

            int transactionCode, paymentCode;

            if (int.TryParse(Credit.SelectedTransactionType.Code, out transactionCode))
            {
                signRequest.TransactionType = transactionCode;
            }
            else
            {
                MessageBoxEx.Show("TransactionType is not number.");
                return;
            }
            if (int.TryParse(Credit.SelectedPaymentType.Code, out paymentCode))
            {
                signRequest.PaymentMode = paymentCode;
            }
            else
            {
                MessageBoxEx.Show("PaymentMode is not number.");
                return;
            }



            if (!Const.Locator.OperationModeVm.IsNormal)
            {
                OperationModeVis = Visibility.Visible;
                if (Const.Locator.OperationModeVm.IsTest)
                {
                    signRequest.OperationMode = 1;
                }
                if (Const.Locator.OperationModeVm.IsSeperate)
                {
                    signRequest.OperationMode = 2;
                }
            }
            else
            {
                OperationModeVis          = Visibility.Collapsed;
                signRequest.OperationMode = 0;
            }


            signRequest.Items = new List <SignGoodItem>();
            SignGoodItem signGoodItem;
            int          id = 1;

            foreach (var item in Credit.Productes)
            {
                signGoodItem         = new SignGoodItem();
                signGoodItem.GTIN    = id;
                signGoodItem.BarCode = item.BarCode;
                id++;
                if (string.IsNullOrWhiteSpace(item.Name))
                {
                    MessageBoxEx.Show("Description is required.");
                    return;
                }
                signGoodItem.Name           = item.Name;
                signGoodItem.Quantity       = item.Count;
                signGoodItem.UnitPrice      = item.Price;
                signGoodItem.TotalAmount    = item.Amount;
                signGoodItem.IsTaxInclusive = true;
                signGoodItem.Labels         = new string[1] {
                    item.TaxType.Label
                };
                signRequest.Items.Add(signGoodItem);
            }
            switch (Const.Locator.ParameterSetting.CommModel)
            {
            case CommModel.NetPort:
                SignRequest(signRequest);
                break;

            case CommModel.SerialPort:
                SignRequestSerial(signRequest);
                break;

            default:
                break;
            }
        }
        private void Sign()
        {
            AttentionResponse attentionResponse = ServiceHelper.AttentionRequest();

            if (attentionResponse.ATT_GSC == "0000")
            {
                signRequest = new SignRequest
                {
                    PosSerialNumber       = Config.PosSerialNumber,
                    IssueTime             = DateTime.Now.ToString("yyyyMMddHHmmss"),
                    TransactionType       = Credit.SelectedPaymentType.Code,
                    PaymentMode           = Credit.SelectedPaymentType.Code,
                    SaleType              = "0",
                    LocalPurchaseOrder    = "",
                    Cashier               = Credit.Cashier,
                    BuyerTPIN             = Credit.Buyer.Tin,
                    BuyerName             = Credit.Buyer.Name,
                    BuyerTaxAccountName   = "",
                    BuyerAddress          = Credit.Buyer.Address,
                    BuyerTel              = Credit.Buyer.TelPhone,
                    OriginalInvoiceCode   = "",
                    OriginalInvoiceNumber = ""
                };
                //signRequest.BuyerCostCenterId = "1234567890";
                //signRequest.InvoiceNumber = "PNQAVDNX-PNQAVDNX-1";
                //signRequest.Options = new Dictionary<string, string>();
                //if (Credit.IsMitQr)
                //{
                //    signRequest.Options.Add("OmitQRCodeGen", "1");
                //}
                //else
                //{
                //    signRequest.Options.Add("OmitQRCodeGen", "0");
                //}
                //if (Credit.IsMitTexTual)
                //{
                //    signRequest.Options.Add("OmitTextualRepresentation", "1");
                //}
                //else
                //{
                //    signRequest.Options.Add("OmitTextualRepresentation", "0");
                //}
                signRequest.Items = new List <SignGoodItem>();
                SignGoodItem signGoodItem;
                foreach (var item in Credit.Productes)
                {
                    signGoodItem                = new SignGoodItem();
                    signGoodItem.GTIN           = item.BarCode;
                    signGoodItem.Name           = item.Name;
                    signGoodItem.Quantity       = item.Count;
                    signGoodItem.UnitPrice      = item.Price;
                    signGoodItem.TotalAmount    = item.Amount;
                    signGoodItem.IsTaxInclusive = true;
                    signGoodItem.Labels         = new string[1] {
                        item.TaxType.Label
                    };
                    signRequest.Items.Add(signGoodItem);
                }
                ServiceHelper.TcpClient.Complated -= TcpClient_Complated;
                ServiceHelper.TcpClient.Complated += TcpClient_Complated;
                ServiceHelper.SignRequest(signRequest);
            }
            else
            {
                MessageBoxEx.Show("E-SDC is not available.ATT_GSC=" + attentionResponse.ATT_GSC);
            }
        }