Ejemplo n.º 1
0
        private void DisplayFilterSettingsForCity(QueryResponseModel queryData)
        {
            Console.WriteLine();
            Console.WriteLine("\nMeasurements");

            // vvv - This block can be better. I dont want to spend to much time on it, This is fine.
            var refiningSearch = true;

            while (refiningSearch)
            {
                PromptForFilterOptions();
                var input        = Console.ReadKey();
                var measurements = queryData.GetAllMeasurements();

                switch (input.KeyChar)
                {
                case '1':
                    DisplayAllMeasurements(measurements);
                    break;

                case '2':
                    refiningSearch = SortDataByDate(measurements);
                    break;

                case '3':
                    refiningSearch = SortByType(measurements);
                    break;

                default:
                    Console.WriteLine("\n*** Input not recognised ***");
                    break;
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 订单查询
        /// </summary>
        /// <param name="queryModel">订单查询请求参数</param>
        /// <param name="payStateChangeCallBack">订单状态改变回调函数</param>
        /// <returns></returns>
        public QueryResponseModel Query(QueryModel queryModel, Action <bool, QueryResponseModel> payStateChangeCallBack)
        {
            QueryResponseModel response = ServiceUtil.AliPayClient.Query(queryModel);

            ServiceUtil.AliPayClient.Close();
            if (response.code == TradepayResultCode.TRADE_FAILURE)
            {
                payStateChangeCallBack(false, response);
                Thread.Sleep(3000); //间隔3s请求一次
                response = Query(queryModel, payStateChangeCallBack);
            }
            else
            {
                switch (response.trade_status)
                {
                case TradeStatus.WAIT_BUYER_PAY:
                    payStateChangeCallBack(false, response);
                    Thread.Sleep(3000);     //间隔3s请求一次
                    response = Query(queryModel, payStateChangeCallBack);
                    break;

                case TradeStatus.TRADE_SUCCESS:
                    payStateChangeCallBack(true, response);
                    break;

                case TradeStatus.TRADE_FINISHED:
                case TradeStatus.TRADE_CLOSED:
                default:
                    payStateChangeCallBack(false, response);
                    break;
                }
            }
            return(response);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 条码支付
        /// </summary>
        /// <param name="tradepayModel">条码支付请求参数</param>
        /// <param name="payOverCallBack">支付结束回调函数</param>
        /// <param name="payStateChangeCallBack">支付状态改变回调函数</param>
        public void TradePay(TradepayModel tradepayModel, Action <bool, TradepayResponseModel> payOverCallBack, Action <bool, QueryResponseModel> payStateChangeCallBack)
        {
            TradepayResponseModel response = ServiceUtil.AliPayClient.TradePay(tradepayModel);

            ServiceUtil.AliPayClient.Close();
            #region 1.交易成功
            if (response.code == TradepayResultCode.TRADE_SUCCESS)
            {
                payOverCallBack(true, response);
                return;
            }
            #endregion
            #region 2.交易失败
            if (response.code == TradepayResultCode.TRADE_FAILURE)
            {
                payOverCallBack(false, response);
                return;
            }
            #endregion
            #region 3.交易结果未知
            if (response.code == TradepayResultCode.EXCEPTION || response.code == TradepayResultCode.PROCESSING)
            {
                string             out_trade_no  = response.out_trade_no;
                QueryResponseModel queryResponse = new QueryResponseModel();
                Task queryOrderTask = new Task(new Action(() =>
                {
                    queryResponse = Query(new QueryModel()
                    {
                        out_trade_no = out_trade_no
                    }, payStateChangeCallBack);
                }));
                queryOrderTask.Start();
            }
            #endregion
        }
Ejemplo n.º 4
0
        public void Should_Set_Collection_Data()
        {
            try
            {
                var collection = new List <DataCollection>();
                collection.Add(new DataCollection()
                {
                    Id = 1
                });
                collection.Add(new DataCollection()
                {
                    Id = 2
                });
                collection.Add(new DataCollection()
                {
                    Id = 3
                });
                collection.Add(new DataCollection()
                {
                    Id = 4
                });
                collection.Add(new DataCollection()
                {
                    Id = 5
                });
                collection.Add(new DataCollection()
                {
                    Id = 6
                });
                collection.Add(new DataCollection()
                {
                    Id = 7
                });
                collection.Add(new DataCollection()
                {
                    Id = 8
                });
                collection.Add(new DataCollection()
                {
                    Id = 9
                });
                collection.Add(new DataCollection()
                {
                    Id = 10
                });


                var queryResponse = new QueryResponseModel();
                queryResponse.Data = collection.Select(c => new { Id = c.Id });
                Assert.True(queryResponse.Data.Count() == 10);
            }
            catch (Exception e)
            {
                System.Console.WriteLine("Fail Test Should_Set_Collection_Data. Fail ===> " + e.ToString());
                Assert.True(false);
            }
        }
Ejemplo n.º 5
0
        public ResponseBase Validate(QueryModel query)
        {
            var response = new QueryResponseModel();

            if (string.IsNullOrWhiteSpace(query.TableName))
            {
                response.ErrorMessage = "Table name cannot be empty";
            }

            if (string.IsNullOrWhiteSpace(query.IndexName))
            {
                response.ErrorMessage = "Index name cannot be empty";
            }

            return(response);
        }