Example #1
0
    protected void BuyOrUpgradePlan(PurchaseBalances balance)
    {
        try
        {
            var plan        = new InvestmentPlatformPlan(int.Parse(PlansDropDownList.SelectedValue));
            var activePlans = CurrentMode == InvestmentPlatformMode.Levels ? 0 : userActivePlans.Count;

            if (AppSettings.InvestmentPlatform.LevelsEnabled)
            {
                InvestmentLevelsManager.CanUserDepositOnLevel(plan, User);
            }

            if (plan.MaxPrice > Money.Zero)
            {
                if (AppSettings.InvestmentPlatform.InvestmentPlatformPlansPolicy == PlansPolicy.OneUpgradedPlan)
                {
                    throw new MsgException(U6012.CANTUPGRADERANGEPLAN);
                }

                var targetPrice = Money.Parse(RangePriceTextBox.Text);
                if (plan.CheckPlanPrice(targetPrice))
                {
                    InvestmentPlatformManager.BuyOrUpgradePlan(Member.Current, balance, plan, targetPrice);
                }
                else
                {
                    throw new MsgException(U6012.TYPECORRECTPRICE);
                }
            }
            else
            {
                InvestmentPlatformManager.BuyOrUpgradePlan(Member.Current, balance, plan);
            }

            //IF activePlans = 1, MEANS THAT WE UPGRADE PLAN (ON PlansPolicy.OneUpgradedPlan)
            if (AppSettings.InvestmentPlatform.InvestmentPlatformPlansPolicy == PlansPolicy.OneUpgradedPlan && activePlans == 1)
            {
                SuccessTextLiteral.Text = string.Format(U6011.SUCCESSUPGRADEPLAN, plan.Name);
            }
            else
            {
                SuccessTextLiteral.Text = string.Format(U6006.SUCCESBOUGHTPLAN, plan.Name);
            }

            SuccessPanel.Visible = true;

            availablePlans = InvestmentPlatformManager.GetAllAvailablePlansForUser(User.Id);
            InitBuyViewControls();
            InitPlans();
        }
        catch (Exception ex)
        {
            ErrorPanel.Visible    = true;
            ErrorTextLiteral.Text = ex.Message;
            if (!(ex is MsgException))
            {
                ErrorLogger.Log(ex);
            }
        }
    }
Example #2
0
    private int Comparison(InvestmentUsersPlans x, InvestmentUsersPlans y)
    {
        var plan1 = new InvestmentPlatformPlan(x.PlanId);
        var plan2 = new InvestmentPlatformPlan(y.PlanId);

        return(plan1.Number < plan2.Number ? -1 : 1);
    }
Example #3
0
    protected void LevelsGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            var planId = Convert.ToInt32(e.Row.Cells[0].Text);
            var plan   = new InvestmentPlatformPlan(planId);
            e.Row.Cells[0].Text = string.Format("L{0}. {1}", plan.Number, plan.Name);

            var amount = Money.Parse(e.Row.Cells[1].Text);
            e.Row.Cells[1].Text = amount.ToString();

            var roi = Convert.ToInt32(e.Row.Cells[2].Text);
            e.Row.Cells[2].Text = (amount * roi / 100).ToString();

            var fee = Money.Parse(e.Row.Cells[3].Text);
            e.Row.Cells[3].Text = fee.ToString();

            try
            {
                var pp = (PaymentProcessor)Convert.ToInt32(e.Row.Cells[6].Text);
                e.Row.Cells[6].Text = pp.ToString();
            }
            catch (Exception ex)
            {
                e.Row.Cells[6].Text = L1.NONE;
            }
        }
    }
Example #4
0
 public HtmlInvestmentProofGenerator(InvestmentUsersPlans userPlan)
 {
     this.userPlan = userPlan;
     user          = new Member(userPlan.UserId);
     fileName      = string.Format("{0}.pdf", userPlan.GeneratePlanNumber());
     platformPlan  = new InvestmentPlatformPlan(userPlan.PlanId);
 }
Example #5
0
 public HtmlInvestmentProofGenerator(InvestmentTicket ticket)
 {
     this.ticket  = ticket;
     user         = new Member(ticket.UserId);
     fileName     = string.Format("{0}.pdf", ticket.GenerateTicketNumber());
     platformPlan = new InvestmentPlatformPlan(new InvestmentUsersPlans(ticket.UserPlanId).PlanId);
 }
Example #6
0
        protected override void handle(string[] args, string transactionId, string amountSent, string from, string cryptoCurrencyInfo = "")
        {
            var   user   = new Member(args[0]);
            var   plan   = new InvestmentPlatformPlan(Convert.ToInt32(args[1]));
            Money amount = Money.Parse(amountSent);

            BuyInvestmentPlatformPlan(user, amount, plan, from, transactionId, cryptoCurrencyInfo);
        }
Example #7
0
    protected void CalculateButton_Click(object sender, EventArgs e)
    {
        try
        {
            ResultPlaceHolder.Visible = true;

            var planType     = new InvestmentPlatformPlan(int.Parse(InvestmentPlanDropDownList.SelectedValue));
            var dailyEarning = planType.Price * planType.Roi / 100 / planType.Time;

            var daily    = dailyEarning.ToString();
            var weekly   = (dailyEarning * 7).ToString();
            var monthly  = (dailyEarning * 30).ToString();
            var halfYear = (dailyEarning * 180).ToString();
            var total    = planType.TotalMinDefaultEarning().ToString();

            if (planType.MaxPrice > Money.Zero)
            {
                var maxDailyEarning = planType.MaxPrice * planType.Roi / 100 / planType.Time;

                daily    = string.Format("{0} - {1}", dailyEarning.ToString(), maxDailyEarning.ToString());
                weekly   = string.Format("{0} - {1}", (dailyEarning * 7).ToString(), (maxDailyEarning * 7).ToString());
                monthly  = string.Format("{0} - {1}", (dailyEarning * 30).ToString(), (maxDailyEarning * 30).ToString());
                halfYear = string.Format("{0} - {1}", (dailyEarning * 180).ToString(), (maxDailyEarning * 180).ToString());
                total    = string.Format("{0} - {1}", planType.TotalMinDefaultEarning().ToString(), planType.TotalMaxEarning().ToString());
            }

            DailyEarningsLiteral.Text      = daily;
            WeeklyEarningsLiteral.Text     = weekly;
            MonthlyEarningsLiteral.Text    = monthly;
            HalfYearlyEarningsLiteral.Text = halfYear;
            TotalEarningsLitereal.Text     = total;

            if (dailyEarning * 180 > planType.Price * planType.Roi / 100)
            {
                HalfYearTab.Visible = false;
            }
            if (dailyEarning * 30 > planType.Price * planType.Roi / 100)
            {
                MonthlyTab.Visible = false;
            }

            if (TitanFeatures.IsParras2k)
            {
                HalfYearlyEarningsLiteral.Text = planType.Price + " + " + (dailyEarning * 180).ToString();
            }
        }
        catch (Exception ex)
        {
            ResultPlaceHolder.Visible = false;
        }
    }
Example #8
0
    protected void HistoryGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            var plan = new InvestmentPlatformPlan(int.Parse(e.Row.Cells[2].Text));

            e.Row.Cells[2].Text = plan.Name;

            //Money Returned
            var returnedMoney = Money.Parse(e.Row.Cells[3].Text);
            e.Row.Cells[3].Text = returnedMoney.ToString();

            //Money to Return
            var moneyToReturn = Money.Parse(e.Row.Cells[4].Text);
            e.Row.Cells[4].Text = moneyToReturn.ToString();

            //Money in System
            e.Row.Cells[5].Text = Money.Parse(e.Row.Cells[5].Text).ToString();

            if (returnedMoney >= moneyToReturn)
            {
                e.Row.Cells[3].ForeColor = System.Drawing.Color.Green;
            }
            else
            {
                e.Row.Cells[3].ForeColor = System.Drawing.Color.DarkRed;
            }

            var Type = (PurchaseBalances)Convert.ToInt32(e.Row.Cells[6].Text);
            switch (Type)
            {
            case PurchaseBalances.Purchase:
                e.Row.Cells[6].Text = U6012.PURCHASEBALANCE;
                break;

            case PurchaseBalances.Cash:
                e.Row.Cells[6].Text = U5008.CASHBALANCE;
                break;

            default:
                break;
            }

            PlanStatus status = (PlanStatus)Convert.ToInt32(e.Row.Cells[7].Text);
            e.Row.Cells[7].Text = HtmlCreator.GetColoredStatus(status);
        }
    }
Example #9
0
    private UserControl GetAdHTML(InvestmentPlatformPlan plan, bool includedUsersEarning = false, InvestmentUsersPlans userPlan = null)
    {
        var objControl    = (UserControl)Page.LoadControl("~/Controls/InvestmentPlatform/InvestmentPlanDetails.ascx");
        var parsedControl = objControl as IInvestmentPlanObjectControl;

        parsedControl.PlatformPlan = plan;

        if (includedUsersEarning)
        {
            parsedControl.IncludedUsersEarning = includedUsersEarning;
            parsedControl.UserPlan             = userPlan;
        }

        parsedControl.DataBind();

        return((UserControl)parsedControl);
    }
Example #10
0
    private void InitManageViewControls()
    {
        //TO DO LATER
        //WithdrawAllMoneyFromSystem.Visible = !AppSettings.InvestmentPlatform.InvestmentPlatformDailyLimitsEnabled;
        UserPlanDetailsPlaceHolder.Controls.Clear();

        InformationLiteral.Text = string.Format("{0}: {1}", U6006.MINAMOUNTTOPAYOUT, User.Membership.InvestmentPlatformMinAmountToCredited);
        MoneyInSystemLabel.Text = string.Format("{0}: {1}", U6006.MONEYINSYSTEM, InvestmentUsersPlans.GetMoneyInSystemFromFinishedPlans(User.Id));

        var userPlans = InvestmentPlatformManager.GetUserActivePlans(User.Id);

        if (userPlans.Count > 0)
        {
            NoPlansPlaceHolder.Visible   = false;
            InformationPanel.Visible     = true;
            UsersPlanPlaceHolder.Visible = true;

            if (AppSettings.InvestmentPlatform.InvestmentPlatformPlansPolicy == PlansPolicy.OneUpgradedPlan)
            {
                var currentPlan = new InvestmentPlatformPlan(userPlans[0].PlanId);
                UserPlanDetailsPlaceHolder.Controls.Add(GetAdHTML(currentPlan, true, userPlans[0]));
                ManageDescription.Text = string.Format("{0}:", U6006.YOURPLAN);
            }
            else
            {
                userPlans.Sort(Comparison);

                foreach (var plan in userPlans)
                {
                    var mainPlan = new InvestmentPlatformPlan(plan.PlanId);
                    UserPlanDetailsPlaceHolder.Controls.Add(GetAdHTML(mainPlan, true, plan));
                }

                ManageDescription.Text = string.Format("{0}s:", U6006.YOURPLAN);
            }
        }
        else
        {
            InformationPanel.Visible     = false;
            UsersPlanPlaceHolder.Visible = false;
            NoPlansPlaceHolder.Visible   = true;
            NoPlansLabel.Text            = U6006.YOUDONTHAVEANYPLAN;
        }
    }
Example #11
0
        protected void BuyInvestmentPlatformPlan(Member user, Money amount, InvestmentPlatformPlan plan, string from, string transId, string cryptoCurrencyInfo)
        {
            bool successful = false;

            try
            {
                if (plan.MaxPrice > Money.Zero)
                {
                    if (!plan.CheckPlanPrice(amount))
                    {
                        throw new MsgException("Not enough money sent!");
                    }

                    InvestmentPlatformManager.BuyOrUpgradePlan(user, PurchaseBalances.PaymentProcessor, plan, amount);
                    successful = true;
                }
                else
                {
                    var price = plan.Price;

                    if (AppSettings.InvestmentPlatform.LevelsEnabled)
                    {
                        price += plan.LevelFee;
                    }

                    if (amount < price)
                    {
                        throw new MsgException("Not enough money sent!");
                    }

                    InvestmentPlatformManager.BuyOrUpgradePlan(user, PurchaseBalances.PaymentProcessor, plan);
                    successful = true;
                }
            }
            catch (Exception ex)
            {
                successful = false;
                ErrorLogger.Log(ex);
            }

            PaymentProcessor PP = PaymentAccountDetails.GetFromStringType(from);

            CompletedPaymentLog.Create(PP, "Investment Plan", transId, false, user.Name, amount, Money.Zero, successful, cryptoCurrencyInfo);
        }
Example #12
0
    protected void TicketsGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            var level = Convert.ToInt32(e.Row.Cells[2].Text);
            e.Row.Cells[2].Text = InvestmentPlatformPlan.GetNameByLevel(level);

            var levelPrice = Money.Parse(e.Row.Cells[3].Text);
            e.Row.Cells[3].Text = levelPrice.ToString();

            var levelFee = Money.Parse(e.Row.Cells[4].Text);
            e.Row.Cells[4].Text = levelFee.ToString();

            var levelEarnings = Money.Parse(e.Row.Cells[5].Text);
            e.Row.Cells[5].Text = levelEarnings.ToString();

            TicketStatus status = (TicketStatus)Convert.ToInt32(e.Row.Cells[6].Text);
            e.Row.Cells[6].Text = HtmlCreator.GetColoredStatus(status);
        }
    }
Example #13
0
    private void UpdatePriceLiteral()
    {
        if (PlansDropDownList.Items.Count > 0)
        {
            var plan = new InvestmentPlatformPlan(int.Parse(PlansDropDownList.SelectedValue));
            var text = string.Empty;

            if (plan.MaxPrice > Money.Zero)
            {
                RangePricePlaceHolder.Visible = true;
                RangePriceTextBox.Text        = plan.Price.ToClearString();
                text = U6012.PRICERANGE;
            }
            else
            {
                RangePricePlaceHolder.Visible = false;
                text = L1.PRICE;
            }

            PriceLiteral.Text = string.Format("{0}: {1}", text, plan.GetPriceText());
        }
    }
Example #14
0
    protected void BuyViaPaymentProcessorButton_Click(object sender, EventArgs e)
    {
        try
        {
            var selectedPlan = new InvestmentPlatformPlan(int.Parse(PlansDropDownList.SelectedValue));
            var targetPrice  = selectedPlan.Price;

            if (AppSettings.InvestmentPlatform.LevelsEnabled)
            {
                InvestmentLevelsManager.CanUserDepositOnLevel(selectedPlan, User);
            }

            if (selectedPlan.MaxPrice > Money.Zero)
            {
                if (AppSettings.InvestmentPlatform.InvestmentPlatformPlansPolicy == PlansPolicy.OneUpgradedPlan)
                {
                    throw new MsgException(U6012.CANTUPGRADERANGEPLAN);
                }

                targetPrice = Money.Parse(RangePriceTextBox.Text);
                if (!selectedPlan.CheckPlanPrice(targetPrice))
                {
                    throw new MsgException(U6012.TYPECORRECTPRICE);
                }
            }

            var bg          = new BuyInvestmentPlanButtonGenerator(User, selectedPlan, targetPrice);
            var buttonsText = string.Empty;

            if (CurrentMode == InvestmentPlatformMode.Levels)
            {
                if (selectedPlan.PaymentProcessor == PaymentProcessor.Null)
                {
                    throw new MsgException(U6013.NOPAYMENTPROCESSORSCONNECTEDWITHLEVEL);
                }

                /* TODO - Add options to pay with cryptocurrency(?)
                 * if(selectedPlan.PaymentProcessor == PaymentProcessor.Coinbase || selectedPlan.PaymentProcessor == PaymentProcessor.CoinPayments)
                 *  buttonsText = GenerateHTMLButtons.GetPaymentButton(bg, CryptocurrencyType);
                 */

                var type = PaymentAccountDetails.GetGatewayType(selectedPlan.PaymentProcessor.ToString());
                buttonsText = GenerateHTMLButtons.GetPaymentButton(bg, type);
            }
            else
            {
                buttonsText = GenerateHTMLButtons.GetPaymentButtons(bg);
            }

            PaymentButtons.Text = buttonsText;

            PaymentProcessorsButtonPlaceHolder.Visible = true;
            BuyControlsPlaceHolder.Visible             = false;
        }
        catch (Exception ex)
        {
            ErrorPanel.Visible    = true;
            ErrorTextLiteral.Text = ex.Message;
            if (ex is MsgException == false)
            {
                ErrorLogger.Log(ex);
            }
        }
    }
Example #15
0
 public BuyInvestmentPlanButtonGenerator(Member member, InvestmentPlatformPlan plan, Money price)
 {
     Member = member;
     Plan   = plan;
     Price  = price;
 }