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