Exemplo n.º 1
0
        protected void ButtonBuyTokens_Click(object sender, EventArgs e)
        {
            if (User == null)
            {
                Response.Redirect("/Account/Login?ReturnUrl=Tokens");
            }

            string tokensCountBuyString = String.Format("{0}", Request.Form["ctl00$MainContent$tokensCountBuy"]);

            long tokensCountBuy = 0;

            try
            {
                tokensCountBuy = Int64.Parse(tokensCountBuyString);
            }
            catch
            {
                Result = "Wrong count";

                return;
            }

            if (tokensCountBuy == 0)
            {
                Result = "Zero count";

                return;
            }

            if (tokensCountBuy < 0)
            {
                Result = "Below zero count value";

                return;
            }

            DateTime currentDate = DateTime.Now;

            int hoursCount = currentDate.Hour;

            double percentsPow = Math.Pow(1.00002897611, hoursCount);

            double currentHourValue = OneTokenTodayCost * percentsPow;

            int hoursCountPlus = hoursCount + 1;

            double percentsPowPlusHour = Math.Pow(1.00002897611, hoursCountPlus);

            double plusHourValue = OneTokenTodayCost * percentsPowPlusHour;

            double diffValuePlusHour = plusHourValue - currentHourValue;

            double secondValue = diffValuePlusHour / 3600;

            int secondsCount = currentDate.Minute * 60 + currentDate.Second;

            double diffValue = secondsCount * secondValue;

            double currentValue = currentHourValue + diffValue;

            double sum = tokensCountBuy * currentValue;

            Wallets userWallet = WalletsHelper.GetUserWallet(User.UserId, (int)CurrenciesEnum.RURT);

            if (userWallet == null || userWallet.Value < sum)
            {
                Result = "No balance";

                return;
            }

            Model.TokensBuying tokensBuying = new Model.TokensBuying
            {
                UserId       = User.UserId,
                CostOneToken = currentValue,
                Count        = tokensCountBuy,
                FullCost     = sum,
                WhenDate     = DateTime.Now
            };

            TokensDataHelper.AddTokensBuying(tokensBuying);

            WalletsHelper.UpdateUserWallet(User.UserId, (int)CurrenciesEnum.RURT, -sum);

            WalletsHelper.UpdateUserWallet(User.UserId, (int)CurrenciesEnum.RENT, tokensCountBuy);

            #region Логирование операции

            {
                Rentoolo.Model.Operations operation = new Rentoolo.Model.Operations
                {
                    UserId   = User.UserId,
                    Value    = tokensCountBuy,
                    Type     = (int)OperationTypesEnum.Registration,
                    Comment  = string.Format("Покупка {0} токенов на сумму {1}.", tokensCountBuy, sum),
                    WhenDate = DateTime.Now
                };

                DataHelper.AddOperation(operation);
            }

            #endregion

            TokensDataHelper.UpdateAvailableTokensCount(AvailableTokensCount - tokensCountBuy);

            Response.Redirect("Tokens");
        }
Exemplo n.º 2
0
        protected void RegisterUser_CreatedUser(object sender, EventArgs e)
        {
            FormsAuthentication.SetAuthCookie(RegisterUser.UserName, createPersistentCookie: false);

            string continueUrl = "~/Account/Cabinet.aspx";  //RegisterUser.ContinueDestinationPageUrl;
            //if (!OpenAuth.IsLocalUrl(continueUrl))
            //{
            //    continueUrl = "~/";
            //}

            Users user = DataHelper.GetUserByName(RegisterUser.UserName);

            Control ctl = null;

            ctl = RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("Password");
            if (ctl != null)
            {
                try
                {
                    user.Pwd = ((TextBox)ctl).Text;
                }
                catch (System.Exception ex)
                {
                    DataHelper.AddException(ex);
                }
            }

            //ctl = RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("TextBoxCommunication");
            //if (ctl != null)
            //{
            //    try
            //    {
            //        user.Communication = ((TextBox)ctl).Text;
            //    }
            //    catch (System.Exception ex)
            //    {
            //        DataHelper.AddException(ex);
            //    }
            //}

            //ctl = RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("TextBoxVkontakte");
            //if (ctl != null)
            //{
            //    try
            //    {
            //        user.VkontakteId = ((TextBox)ctl).Text;
            //    }
            //    catch (System.Exception ex)
            //    {
            //        DataHelper.AddException(ex);
            //    }
            //}

            //ctl = RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("TextBoxIcq");
            //if (ctl != null)
            //{
            //    try
            //    {
            //        user.Icq = ((TextBox)ctl).Text;
            //    }
            //    catch (System.Exception ex)
            //    {
            //        DataHelper.AddException(ex);
            //    }
            //}

            //ctl = RegisterUser.CreateUserStep.ContentTemplateContainer.FindControl("TextBoxSkype");
            //if (ctl != null)
            //{
            //    try
            //    {
            //        user.Skype = ((TextBox)ctl).Text;
            //    }
            //    catch (System.Exception ex)
            //    {
            //        DataHelper.AddException(ex);
            //    }
            //}

            user.PublicId = DataHelper.GenerateUserPublicId();

            //user.Balance = 50;

            DataHelper.UpdateUser(user);


            if (_refid != 0)
            {
                DataHelper.AddReferral(new Rentoolo.Model.Referrals
                {
                    ReferrerUserId = DataHelper.GetUserByRefId(_refid).UserId,
                    ReferralUserId = user.UserId,
                    WhenDate       = DateTime.Now
                });
            }

            #region Логирование операции

            {
                Rentoolo.Model.Operations operation = new Rentoolo.Model.Operations
                {
                    UserId   = user.UserId,
                    Value    = 0,
                    Type     = (int)OperationTypesEnum.Registration,
                    Comment  = string.Format("Учетная запись создана."),
                    WhenDate = DateTime.Now
                };

                DataHelper.AddOperation(operation);
            }

            #endregion

            Response.Redirect("~/Account/Cabinet.aspx");
        }
Exemplo n.º 3
0
        protected void ButtonMakePayment_Click(object sender, EventArgs e)
        {
            double value;

            if (!double.TryParse(TextBoxPaymentValue.Text, out value))
            {
                ResultOrder = 3;
                return;
            }

            double balance = 0;

            if (balance < value || value <= 0)
            {
                ResultOrder = 2;
                return;
            }

            int userIdRecepient;

            if (!int.TryParse(TextBoxPaymentAddress.Text, out userIdRecepient))
            {
                ResultOrder = 4;
                return;
            }

            Users userRecepient = DataHelper.GetUserByPublicId(userIdRecepient);

            if (userRecepient == null)
            {
                ResultOrder = 5;
                return;
            }

            Model.Payments payment = new Model.Payments
            {
                UserIdSender    = User.UserId,
                UserIdRecepient = userRecepient.UserId,
                Value           = value,
                Comment         = TextBoxPaymentComment.Text,
                WhenDate        = DateTime.Now
            };

            DataHelper.AddPayment(payment);

            #region Списание со счета

            #endregion

            #region Логирование операции перевода от пользователя

            {
                Rentoolo.Model.Operations operation = new Rentoolo.Model.Operations();

                operation.UserId  = User.UserId;
                operation.Value   = -value;
                operation.Type    = (int)OperationTypesEnum.PaymentOut;
                operation.Comment = string.Format("Перевод на счёт {0} на сумму {1} р.", TextBoxPaymentAddress.Text, value);

                if (!string.IsNullOrEmpty(TextBoxPaymentComment.Text))
                {
                    operation.Comment = operation.Comment + " Комментарий: " + TextBoxPaymentComment.Text + ".";
                }

                operation.WhenDate = DateTime.Now;

                DataHelper.AddOperation(operation);
            }

            #endregion

            #region Логирование операции получения перевода от другого пользователя

            {
                Rentoolo.Model.Operations operation = new Rentoolo.Model.Operations();

                operation.UserId  = userRecepient.UserId;
                operation.Value   = value;
                operation.Type    = (int)OperationTypesEnum.PaymentIn;
                operation.Comment = string.Format("Получен перевод от пользователя на сумму {0} р.", value);

                if (!string.IsNullOrEmpty(TextBoxPaymentComment.Text))
                {
                    operation.Comment = operation.Comment + " Комментарий: " + TextBoxPaymentComment.Text + ".";
                }

                operation.WhenDate = DateTime.Now;

                DataHelper.AddOperation(operation);
            }

            #endregion

            ResultOrder = 1;

            TextBoxPaymentAddress.Text = string.Empty;
            TextBoxPaymentValue.Text   = string.Empty;
            TextBoxPaymentComment.Text = string.Empty;
        }