public string SubscribeOnPortfolioOnNewAccount(TopPortfolioItem newTopPortfolio) { var accountRepository = DependencyResolver.Current.GetService <IAccountRepository>(); string errorMessage; if (!accountRepository.AddAccount(newTopPortfolio.AddAccountModel)) { errorMessage = Resource.ErrorMessageNotCreateAccountForTopPortfolio + " " + newTopPortfolio.AddAccountModel.UserName; Logger.Error("SubscribeOnPortfolioOnNewAccount() - " + errorMessage); return(errorMessage); } newTopPortfolio.ManagedAccount = accountRepository.GetAccountId(newTopPortfolio.AddAccountModel.UserLogin); var topPortfolio = AddTopPortfolio(newTopPortfolio); if (topPortfolio == null) { errorMessage = Resource.ErrorMessageTopPortfolioUnableAdd; Logger.Error(errorMessage); return(errorMessage); } Logger.Info("Новый портфель роботов создан"); try { var proxy = new TradeSharpServerTrade(EmptyTradeSharpCallbackReceiver.Instance).proxy; var status = proxy.SubscribeOnPortfolio(ProtectedOperationContext.MakeServerSideContext(), newTopPortfolio.AddAccountModel.UserLogin, topPortfolio, null, Utils.GetDefaultPortfolioTradeSettings()); if (status != RequestStatus.OK) { errorMessage = Resource.ErrorMessageUnableSignAccount; Logger.Error(errorMessage); return(errorMessage); } return(string.Empty); } catch (Exception ex) { errorMessage = Resource.ErrorMessageUnableSignAccount + ": " + ex.Message; Logger.Error("AddTopPortfolio", ex); } return(errorMessage); }
public bool SaveTopPortfolioChanges(TopPortfolioItem topPortfolioItem) { try { using (var ctx = DatabaseContext.Instance.Make()) { var undecoratePortfolio = ctx.TOP_PORTFOLIO.Single(a => a.Id == topPortfolioItem.Id); LinqToEntity.UndecoratePortfolio(undecoratePortfolio, topPortfolioItem); ctx.SaveChanges(); return(true); } } catch (Exception ex) { Logger.Error( String.Format("Не удалось сохранить изменения в портфеле роботов {0}", topPortfolioItem.Id), ex); } return(false); }
public ActionResult AddTopPortfolio(string message, bool?createNewAccount) { FillDropDownListForAccountView(); if (!string.IsNullOrEmpty(message)) { ResultMessage = message; } var listHostAccount = accountRepository.GetAllAccounts(); if (listHostAccount != null) { ViewBag.listHostAccount = listHostAccount; var topPortfolioItem = new TopPortfolioItem(); if (createNewAccount.HasValue) { topPortfolioItem.CreateNewAccount = createNewAccount.Value; } return(View("TopPortfoliosAdd", topPortfolioItem)); } return(RedirectToAction("TopPortfolios", new { message = Resource.ErrorMessageUnableRetrieveServerListPortfolios })); }