void Notify_Finished(object sender, FinishedEventArgs e)
  {
      DateTime now = DateTime.Now;
      TradeTypes selfhelpInpour = TradeTypes.SelfhelpInpour;
      Member user = Users.GetUser(this.InpourRequest.UserId, false) as Member;
      decimal num = user.Balance + this.InpourRequest.InpourBlance;
      BalanceDetailInfo balanceDetails = new BalanceDetailInfo();
      balanceDetails.UserId = this.InpourRequest.UserId;
      balanceDetails.UserName = user.Username;
      balanceDetails.TradeDate = now;
      balanceDetails.TradeType = selfhelpInpour;
      balanceDetails.Income = new decimal?(this.InpourRequest.InpourBlance);
      balanceDetails.Balance = num;
      if (this.paymode != null)
      {
          balanceDetails.Remark = "充值支付方式:" + this.paymode.Name;
      }
      if (PersonalHelper.Recharge(balanceDetails, this.InpourRequest.InpourId))
      {
          Users.ClearUserCache(user);
          this.ResponseStatus(true, "success");
      }
      else
      {
          PersonalHelper.RemoveInpourRequest(this.InpourId);
          this.ResponseStatus(false, "fail");
      }
  }
 private void LoadParameters()
 {
     if (!Page.IsPostBack)
     {
         if (!string.IsNullOrEmpty(Page.Request.QueryString["dataStart"]))
         {
             dataStart = new DateTime?(Convert.ToDateTime(base.Server.UrlDecode(Page.Request.QueryString["dataStart"])));
         }
         if (!string.IsNullOrEmpty(Page.Request.QueryString["dataEnd"]))
         {
             dataEnd = new DateTime?(Convert.ToDateTime(base.Server.UrlDecode(Page.Request.QueryString["dataEnd"])));
         }
         if (!string.IsNullOrEmpty(Page.Request.QueryString["tradeType"]))
         {
             int result = 0;
             int.TryParse(Page.Request.QueryString["tradeType"], out result);
             tradeType = (TradeTypes)result;
         }
         ddlTradeType.DataBind();
         ddlTradeType.SelectedValue = tradeType;
         calendarStart.SelectedDate = dataStart;
         calendarEnd.SelectedDate   = dataEnd;
     }
     else
     {
         tradeType = ddlTradeType.SelectedValue;
         dataStart = calendarStart.SelectedDate;
         dataEnd   = calendarEnd.SelectedDate;
     }
 }
        private string GetTradeType(TradeTypes type, bool isDistributor = false)
        {
            string text = "";

            switch (type)
            {
            case TradeTypes.SelfhelpInpour:
                return("自助充值");

            case TradeTypes.BackgroundAddmoney:
                return("后台加款");

            case TradeTypes.Consume:
                return("消费");

            case TradeTypes.DrawRequest:
                return("提现");

            case TradeTypes.RefundOrder:
                if (isDistributor)
                {
                    return("采购单退款");
                }
                return("订单退款");

            case TradeTypes.ReturnOrder:
                return(isDistributor ? "采购单退货" : "订单退货");

            case TradeTypes.Commission:
                return("分销奖励");

            default:
                return("其他");
            }
        }
Example #4
0
        private void Notify_Finished(object sender, FinishedEventArgs e)
        {
            DateTime          now               = DateTime.Now;
            TradeTypes        tradeType         = TradeTypes.SelfhelpInpour;
            MemberInfo        user              = Users.GetUser(this.InpourRequest.UserId);
            decimal           balance           = user.Balance + this.InpourRequest.InpourBlance;
            BalanceDetailInfo balanceDetailInfo = new BalanceDetailInfo();

            balanceDetailInfo.UserId    = this.InpourRequest.UserId;
            balanceDetailInfo.UserName  = user.UserName;
            balanceDetailInfo.TradeDate = now;
            balanceDetailInfo.TradeType = tradeType;
            balanceDetailInfo.Income    = this.InpourRequest.InpourBlance;
            balanceDetailInfo.Balance   = balance;
            balanceDetailInfo.InpourId  = this.InpourRequest.InpourId;
            if (this.paymode != null)
            {
                balanceDetailInfo.Remark = "充值支付方式:" + this.paymode.Name;
            }
            if (MemberProcessor.Recharge(balanceDetailInfo))
            {
                this.ResponseStatus(true, "success");
            }
            else
            {
                MemberProcessor.RemoveInpourRequest(this.InpourId);
                this.ResponseStatus(false, "fail");
            }
        }
Example #5
0
        private void notify_PaidToMerchant(NotifyQuery sender)
        {
            DateTime   now = DateTime.Now;
            TradeTypes selfHelpRecharge = TradeTypes.SelfHelpRecharge;
            decimal    num = PaymentModeManage.GetAccountSummary(this.RechargeRequest.UserId).
                             AccountAmount + this.RechargeRequest.RechargeBlance;
            BalanceDetailInfo balanceDetails = new BalanceDetailInfo
            {
                JournalNumber = this.RechargeRequest.RechargeId,
                UserId        = this.RechargeRequest.UserId,
                TradeDate     = now,
                TradeType     = selfHelpRecharge,
                Income        = this.RechargeRequest.RechargeBlance,
                Balance       = num
            };

            if (this.paymode != null)
            {
                balanceDetails.Remark = "充值支付方式:" + this.paymode.Name;
            }
            if (PaymentModeManage.AddBalanceDetail(balanceDetails))
            {
                this.ResponseStatus(true, "success");
            }
            else
            {
                PaymentModeManage.RemoveRechargeRequest(this.RechargeId);
                this.ResponseStatus(false, "fail");
            }
        }
Example #6
0
        void Notify_Finished(object sender, FinishedEventArgs e)
        {
            DateTime          now            = DateTime.Now;
            TradeTypes        selfhelpInpour = TradeTypes.SelfhelpInpour;
            Distributor       user           = Users.GetUser(InpourRequest.UserId, false) as Distributor;
            decimal           num            = user.Balance + InpourRequest.InpourBlance;
            BalanceDetailInfo balanceDetails = new BalanceDetailInfo();

            balanceDetails.UserId    = InpourRequest.UserId;
            balanceDetails.UserName  = user.Username;
            balanceDetails.TradeDate = now;
            balanceDetails.TradeType = selfhelpInpour;
            balanceDetails.Income    = new decimal?(InpourRequest.InpourBlance);
            balanceDetails.Balance   = num;
            if (paymode != null)
            {
                balanceDetails.Remark = "充值支付方式:" + paymode.Name;
            }
            if (SubsiteStoreHelper.AddBalanceDetail(balanceDetails, InpourId))
            {
                Users.ClearUserCache(user);
                ResponseStatus(true, "success");
            }
            else
            {
                SubsiteStoreHelper.RemoveInpourRequest(InpourId);
                ResponseStatus(false, "fail");
            }
        }
Example #7
0
        private void Notify_Finished(InpourRequestInfo inpourRequest)
        {
            DateTime          now               = DateTime.Now;
            TradeTypes        tradeType         = TradeTypes.SelfhelpInpour;
            MemberInfo        user              = Users.GetUser(inpourRequest.UserId);
            decimal           balance           = user.Balance + inpourRequest.InpourBlance;
            BalanceDetailInfo balanceDetailInfo = new BalanceDetailInfo();

            balanceDetailInfo.UserId    = inpourRequest.UserId;
            balanceDetailInfo.UserName  = user.UserName;
            balanceDetailInfo.TradeDate = now;
            balanceDetailInfo.TradeType = tradeType;
            balanceDetailInfo.Income    = inpourRequest.InpourBlance;
            balanceDetailInfo.Balance   = balance;
            balanceDetailInfo.InpourId  = inpourRequest.InpourId;
            balanceDetailInfo.Remark    = "充值支付方式:微信支付";
            if (MemberProcessor.Recharge(balanceDetailInfo))
            {
                base.Response.Write("success");
            }
            else
            {
                base.Response.Write("success");
            }
        }
 private void LoadParameters()
 {
     if (!this.Page.IsPostBack)
     {
         if (!string.IsNullOrEmpty(this.Page.Request.QueryString["dataStart"]))
         {
             this.dataStart = new System.DateTime?(System.Convert.ToDateTime(base.Server.UrlDecode(this.Page.Request.QueryString["dataStart"])));
         }
         if (!string.IsNullOrEmpty(this.Page.Request.QueryString["dataEnd"]))
         {
             this.dataEnd = new System.DateTime?(System.Convert.ToDateTime(base.Server.UrlDecode(this.Page.Request.QueryString["dataEnd"])));
         }
         if (!string.IsNullOrEmpty(this.Page.Request.QueryString["tradeType"]))
         {
             int num = 0;
             int.TryParse(this.Page.Request.QueryString["tradeType"], out num);
             this.tradeType = (TradeTypes)num;
         }
         this.ddlTradeType.DataBind();
         this.ddlTradeType.SelectedValue = this.tradeType;
         this.calendarStart.SelectedDate = this.dataStart;
         this.calendarEnd.SelectedDate   = this.dataEnd;
         return;
     }
     this.tradeType = this.ddlTradeType.SelectedValue;
     this.dataStart = this.calendarStart.SelectedDate;
     this.dataEnd   = this.calendarEnd.SelectedDate;
 }
        public ActionResult SaveBase64(String base64, TradeTypes tradeType)
        {
            ScreenshotDto dto = this._screenshotAppService.SaveBase64(base64);

            RecognizeText(dto.Id, tradeType).MapTo(dto);
            return(Json(dto));
        }
Example #10
0
 protected override void OnDataBinding(EventArgs e)
 {
     if (!string.IsNullOrEmpty(this.tradeType))
     {
         this.type = (TradeTypes)Enum.Parse(typeof(TradeTypes), DataBinder.Eval(this.Page.GetDataItem(), this.TradeType).ToString());
         return;
     }
     base.OnDataBinding(e);
 }
Example #11
0
 protected override void OnDataBinding(EventArgs e)
 {
     if (!string.IsNullOrEmpty(tradeType))
     {
         type = (TradeTypes) Enum.Parse(typeof(TradeTypes), DataBinder.Eval(Page.GetDataItem(), TradeType).ToString());
     }
     else
     {
         base.OnDataBinding(e);
     }
 }
Example #12
0
 protected override void OnDataBinding(EventArgs e)
 {
     if (!string.IsNullOrEmpty(tradeType))
     {
         type = (TradeTypes)Enum.Parse(typeof(TradeTypes), DataBinder.Eval(Page.GetDataItem(), TradeType).ToString());
     }
     else
     {
         base.OnDataBinding(e);
     }
 }
Example #13
0
 public ExtractedPricesModel(String[] priceStrings, TradeTypes tradeType)
 {
     if (priceStrings != null && priceStrings.Length > 0)
     {
         if (tradeType == TradeTypes.LongFuture)
         {
             this.EntryPrice       = ExtractPrice(priceStrings, "Upper Step", "Upper Stop", "Upper smp", "Upper Slop");
             this.StopLossPrice    = ExtractPrice(priceStrings, "Lower Step", "Lower Stop", "Lower smp", "Lower Slop");
             this.ProfitTakerPrice = ExtractPrice(priceStrings, "Upper Target");
         }
         else
         {
             this.EntryPrice       = ExtractPrice(priceStrings, "Lower Step", "Lower Stop", "Lower smp", "Lower Slop");
             this.StopLossPrice    = ExtractPrice(priceStrings, "Upper Step", "Upper Stop", "Upper smp", "Upper Slop");
             this.ProfitTakerPrice = ExtractPrice(priceStrings, "Lower Target");
         }
     }
 }
        private ExtractedPricesModel RecognizeText(int id, TradeTypes tradeType)
        {
            Screenshot           screenshot = this._screenshotRepository.Get(id);
            ExtractedPricesModel model      = null;

            using (var engine = new TesseractEngine(Server.MapPath(@"~/tessdata"), "eng", EngineMode.Default))
            {
                using (var image = new System.Drawing.Bitmap(new MemoryStream(screenshot.Data)))
                {
                    using (var pix = PixConverter.ToPix(image))
                    {
                        using (var page = engine.Process(pix))
                        {
                            var      text         = page.GetText();
                            String[] priceStrings = text.Replace("\n", ":").Replace(": ", ":").Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                            model = new ExtractedPricesModel(priceStrings, tradeType);
                        }
                    }
                }
            }

            return(model);
        }
 public override void DataBind()
 {
     this.tradeTypes = (TradeTypes)DataBinder.Eval(this.Page.GetDataItem(), "TradeType");
 }
Example #16
0
        /// <summary>
        /// Trade
        /// </summary>
        /// <param name="symbolId">Symbol id</param>
        /// <param name="side">buy or sell</param>
        /// <param name="price">Base Price</param>
        /// <param name="amount">Amount</param>
        /// <param name="retryCount">Retry count when failed</param>
        /// <returns>Trade entity</returns>
        private TradeEntity Trade(int symbolId, TradeTypes side, decimal price, decimal amount, int retryCount = 1)
        {
            if (retryCount > ConfigTool.TradeFailedRetryCount)
            {
                // If retry ended, return
                return(null);
            }
            TradeEntity te          = new TradeEntity();
            bool        isSucceeded = false;

            try
            {
                if (ConfigTool.RunMode == RunMode.TEST)
                {
                    if (side == TradeTypes.BUY && TestConfigTool.TradeBaseToCoinFailed)
                    {
                        return(null);
                    }
                    else if (side == TradeTypes.SELL && TestConfigTool.TradeCoinToBaseFailed)
                    {
                        return(null);
                    }
                    else
                    {
                        // If test
                        var receivedValue = amount.ToString();
                        var remainsValue  = amount.ToString();
                        var orderId       = "1";
                        var receivedD     = (decimal)double.Parse(receivedValue);
                        var remainsD      = (decimal)double.Parse(remainsValue);
                        te.Received = receivedD;
                        te.Remains  = remainsD;
                        te.OrderId  = orderId;
                        isSucceeded = true;
                    }
                }
                else
                {
                    XElement data = null;

                    if (side == TradeTypes.BUY)
                    {
                        //Try to buy
                        data = privateApiInstance.BuyOrder(symbolId, price.ToString(), amount.ToString());
                    }
                    else
                    {
                        //Try to sell
                        data = privateApiInstance.SellOrder(symbolId, price.ToString(), amount.ToString());
                    }

                    var id = data.Element("data").Element("order_id");
                    if (id != null && !string.IsNullOrEmpty(id.Value))
                    {
                        // If id is returned
                        var receivedValue = data.Element("data").Element("trade_volume").Value;
                        var remainsValue  = data.Element("data").Element("volume").Value;
                        var orderId       = id.Value;
                        var receivedD     = (decimal)double.Parse(receivedValue);
                        var remainsD      = (decimal)double.Parse(remainsValue);
                        te.Received = receivedD;
                        te.Remains  = remainsD;
                        te.OrderId  = orderId;
                        isSucceeded = true;
                    }
                    else
                    {
                        // If result is incorrect, output error log and retry if retry count is set
                        var logMsg = "Error happened when trading in dragonex.The result is:" + data.ToString();
                        LogTool.LogTradeInfo(logMsg, LogLevels.ERROR);
                        return(Trade(symbolId, side, price, amount, ++retryCount));
                    }
                }
            }
            catch (Exception ex)
            {
                // If any error happened when Trading, out error log
                var logMsg = "Exception happened when trading in dragonex.Exception:" + Environment.NewLine
                             + ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine;
                LogTool.LogTradeInfo(logMsg, LogLevels.ERROR);
                return(Trade(symbolId, side, price, amount, ++retryCount));
            }
            te.Success = isSucceeded;
            return(te);
        }
 private void LoadParameters()
 {
     if (!Page.IsPostBack)
     {
         if (!string.IsNullOrEmpty(Page.Request.QueryString["dataStart"]))
         {
             dataStart = new DateTime?(Convert.ToDateTime(base.Server.UrlDecode(Page.Request.QueryString["dataStart"])));
         }
         if (!string.IsNullOrEmpty(Page.Request.QueryString["dataEnd"]))
         {
             dataEnd = new DateTime?(Convert.ToDateTime(base.Server.UrlDecode(Page.Request.QueryString["dataEnd"])));
         }
         if (!string.IsNullOrEmpty(Page.Request.QueryString["tradeType"]))
         {
             int result = 0;
             int.TryParse(Page.Request.QueryString["tradeType"], out result);
             tradeType = (TradeTypes)result;
         }
         ddlTradeType.DataBind();
         ddlTradeType.SelectedValue = tradeType;
         calendarStart.SelectedDate = dataStart;
         calendarEnd.SelectedDate = dataEnd;
     }
     else
     {
         tradeType = ddlTradeType.SelectedValue;
         dataStart = calendarStart.SelectedDate;
         dataEnd = calendarEnd.SelectedDate;
     }
 }