internal static MatchedOrder Create(IOrderBase orderBase, double volume)
 {
     return(new MatchedOrder
     {
         Id = orderBase.Id,
         Volume = volume
     });
 }
Beispiel #2
0
        public (string, string) CreateOrder(string openId, IOrderBase order, string notifyurl)
        {
            JsApiPay jsApiPay   = new JsApiPay();
            var      outTradeNo = WxPayApi.GenerateOutTradeNo();
            var      orderDict  = new Dictionary <string, string>();

            orderDict.Add("fee", order.Fee.ToString());
            orderDict.Add("name", order.Name);
            orderDict.Add("notify_url", notifyurl);
            orderDict.Add("openid", openId);
            orderDict.Add("tag", order.Tag);
            orderDict.Add("desc", order.Desc);
            orderDict.Add("out_trade_no", outTradeNo);
            var wxPayData = jsApiPay.GetUnifiedOrderResult(orderDict);


            return(GetJsApiParameters(wxPayData), outTradeNo);
        }
Beispiel #3
0
        public (Stream, string) NativeCreateOrder(string openId, IOrderBase order, string notifyUrl)
        {
            NativePay nativePay  = new NativePay();
            var       outTradeNo = WxPayApi.GenerateOutTradeNo();

            var orderDict = new Dictionary <string, string>();

            orderDict.Add("fee", order.Fee.ToString());
            orderDict.Add("name", order.Name);
            orderDict.Add("notify_url", notifyUrl);
            orderDict.Add("tag", order.Tag ?? String.Empty);
            orderDict.Add("desc", order.Desc ?? String.Empty);
            orderDict.Add("out_trade_no", outTradeNo);
            orderDict.Add("productId", order.Id.ToString());

            var payUrl = nativePay.GetPayUrl(orderDict);

            return(MakeQRCode(payUrl), outTradeNo);
        }
 public static OrderBase Create(IOrderBase src)
 {
     return(new OrderBase
     {
         Id = src.Id,
         ClientId = src.ClientId,
         TradingAccountId = src.TradingAccountId,
         CreatedAt = src.CreatedAt,
         Volume = src.Volume,
         Price = src.Price,
         InstrumentId = src.InstrumentId,
         Status = src.Status,
         DefinedPrice = src.DefinedPrice,
         LastModified = src.LastModified,
         Comment = src.Comment,
         TakeProfit = src.TakeProfit,
         StopLoss = src.StopLoss
     });
 }
Beispiel #5
0
        public async Task <(string, CourseOrder)> PayOrder(string openId, IOrderBase order, string notifyurl)
        {
            (string, CourseOrder)result;

            switch (order.PayChannel)
            {
            case PayChannel.WeChat:
            default:
                result = await Task.Run(() =>
                {
                    var uniferOrderData = wxPayService.CreateOrder(openId, order, notifyurl);
                    order.OutTradeNo    = uniferOrderData.Item2;
                    return(uniferOrderData.Item1, order as CourseOrder);
                });

                break;
            }
            return(result);
        }
 public static OrderAction OrderAction(this IOrderBase orderBase)
 {
     return(orderBase.Volume > 0 ? Exchange.OrderAction.Buy : Exchange.OrderAction.Sell);
 }
 private static ClientTrade CreateCommonPartForTradeRecord(LimitQueueItem.LimitTradeInfo trade, IOrderBase limitOrder, string btcTransactionId, double price)
 {
     return(new ClientTrade
     {
         DateTime = trade.Timestamp,
         Price = price,
         LimitOrderId = limitOrder.Id,
         OppositeLimitOrderId = trade.OppositeOrderExternalId,
         TransactionId = btcTransactionId,
         IsLimitOrderResult = true,
         State = Service.OperationsRepository.AutorestClient.Models.TransactionStates.SettledOffchain
     });
 }
 public static bool IsActiveOrder(this IOrderBase order)
 {
     return(!(!double.IsNaN(order.DefinedPrice) && (Math.Abs(order.DefinedPrice) > 0)));
 }
Beispiel #9
0
 public async Task <(Stream, CourseOrder)> PayNativeOrder(string openId, IOrderBase order, string notifyurl)
 {
     var(picStream, outTrade) = wxPayService.NativeCreateOrder(openId, order, notifyurl);
     order.OutTradeNo         = outTrade;
     return(await Task.Run(() => (picStream, order as CourseOrder)));
 }
        private async Task UpdateCache(IOrderBase meOrder)
        {
            var count = (await _limitOrdersRepository.GetActiveOrdersAsync(meOrder.ClientId)).Count();

            await _clientCacheRepository.UpdateLimitOrdersCount(meOrder.ClientId, count);
        }