public ActionResult AccountAdd()
 {
     FillDropDownListForAccountView();
     var emptyAccount = new AddAccountModel
     {
         AccountMaxLeverage = 10
     };
     return View(emptyAccount);
 }
        public ActionResult AccountAdd(AddAccountModel account)
        {
            FillDropDownListForAccountView();
            if (!ModelState.IsValid) return View(account);
            var viewModel = AccountUtils.GetAccountViewModel(accountRepository.GetFilterAccountFromServer(null));

            ResultMessage =
                accountRepository.AddAccount(account) ?
                Resource.MessageAccauntAdded :
                Resource.ErrorMessageAccauntAdded;

            return View("Accounts", viewModel);
        }
Ejemplo n.º 3
0
        public bool AddAccount(AddAccountModel newAccount)
        {
            // В данном методе напрямую с БД не работаем - работаем через прокси
            // Сформированный JSON отправляется на сервер терминала
            const string queryPtr = "/?formatquery=1&register=1";

            var urlSrv = AppConfig.GetStringParam("Env.TradeSharpServiceUrl", "http://10.5.237.10:8061");
            var userName = AppConfig.GetStringParam("Env.TradeSharpUser", "forexinvest\\asitaev");
            var userPwrd = AppConfig.GetStringParam("Env.TradeSharpPwrd", "AndSit!qa");

            if (newAccount == null)
            {
                Logger.Error("AddAccount. Ошибка добавления аккаунта. Объект модели равен null");
                return false;
            }

            var newAccountParamList = new List<HttpParameter>
                {
                    new RegisterAccountQuery
                        {
                            #region быстрая инициализация свойств
                            Balance = newAccount.AccountBalance,
                            Group = newAccount.AccountGroup,
                            Currency = newAccount.AccountCurrency,
                            MaxLeverage = newAccount.AccountMaxLeverage,

                            UserLogin = newAccount.UserLogin,
                            UserPassword = newAccount.UserPassword,
                            UserName = newAccount.UserName,
                            UserSurname = newAccount.UserSurname,
                            UserPatronym = newAccount.UserPatronym,
                            UserDescription = newAccount.UserDescription,
                            UserEmail = newAccount.UserEmail,
                            UserPhone1 = newAccount.UserPhone1,
                            UserPhone2 = newAccount.UserPhone2,
                            UserRightsMask = newAccount.UserRightsMask,
                            UserRoleMask = newAccount.UserRoleMask,
                            #endregion
                        }
                };

            try
            {
                string rawData;

                var result = HttpParameter.DeserializeServerResponse(urlSrv + queryPtr, newAccountParamList, out rawData, userName, userPwrd);
                var report = (ExecutionReport)result.FirstOrDefault(p => p is ExecutionReport);

                if (report != null)
                {
                    if (!report.IsOk)
                        Logger.Error("Ошибка: " + report.Comment);
                }
            }
            catch (Exception ex)
            {
                Logger.Error("AddAccount(). Ошибка добавления аккаунта", ex);
            }
            try
            {
                if (newAccount.WalletBalance < 0)
                {
                    Logger.Error("AddAccount(). Не удалось зачислить средства на кошелёк пользователя - невозможно зачислить отридцательную сумму.");
                    return false;
                }
                using (var ctx = DatabaseContext.Instance.Make())
                {
                    var userId = ctx.PLATFORM_USER.Single(x => x.Login == newAccount.UserLogin);
                    var wallet = ctx.WALLET.Single(w => w.User == userId.ID);
                    wallet.Balance = (decimal)newAccount.AccountBalance;
                    ctx.SaveChanges();
                }
                return true;
            }
            catch (Exception ex)
            {
                Logger.Error("AddAccount() - не удалось зачислить средства на кошелёк пользователя", ex);
            }
            return false;
        }