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; } } }
/// <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); }
/// <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 }
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); } }
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); }