public OperationStatus InsertAccount(BrokerageAccount acct) { //simulate insert operation success return(new OperationStatus { Status = true }); }
private static void AddBrokerageAccounts(List <Security> securities, Customer cust) { string[] accountTitles = { "IRA", "Joint Brokerage", "Brokerage Account" }; for (int i = 0; i < accountTitles.Length; i++) { var acct = new BrokerageAccount { AccountNumber = "Z48573988" + i.ToString(), AccountTitle = accountTitles[i], IsRetirement = (i == 0) ? true : false, CashTotal = (i + 1) * 5000, WatchList = new WatchList { Title = "My Watch Securities" } }; FillAccountSecurities(securities, acct, i); acct.PositionsTotal = acct.Positions.Sum(p => p.Total); acct.Total = acct.PositionsTotal + acct.CashTotal; acct.MarginBalance = (acct.IsRetirement) ? 0.00M : Math.Round(acct.Total / 3, 2); cust.BrokerageAccounts.Add(acct); } }
private static void FillAccountSecurities(List <Security> securities, BrokerageAccount acct, int seed) { var rdm = new Random((int)DateTime.Now.Ticks + seed); for (int index = 0; index < 10; index++) { int pos = rdm.Next(securities.Count - 1); var sec = securities[pos]; if (!acct.Positions.Any(p => p.Security.Symbol == sec.Symbol)) { var multiplier = (pos == 0) ? 1 : pos; var shares = multiplier * 100; var total = shares * sec.Last; acct.Positions.Add(new Position { Security = sec, Shares = shares, Total = total }); } } var watchListSecs = securities.Where(s => !acct.Positions.Any(p => p.SecurityId == s.Id)); if (watchListSecs.Count() > 10) { watchListSecs = watchListSecs.Take(8); } foreach (var watchSec in watchListSecs) { acct.WatchList.Securities.Add(watchSec); } }
public void PostAccount_ReturnsCreatedStatusCode() { // Arrange var bAcct = new BrokerageAccount { AccountNumber = "1234" }; var acctStub = new StubIAccountRepository { InsertAccountBrokerageAccount = (ba) => { return(new OperationStatus { Status = true }); } }; var controller = GetDataServiceController(acct: acctStub); SetupController(controller); // Act var result = controller.PostAccount(bAcct) as CreatedAtRouteNegotiatedContentResult <BrokerageAccount>; // Assert Assert.IsNotNull(result); Assert.AreEqual(bAcct.AccountNumber, result.Content.AccountNumber); }
private List <BrokerageAccount> CreateBrokerageAccounts(Customer cust) { List <BrokerageAccount> accts = new List <BrokerageAccount>(); string[] accountTitles = { "IRA", "Joint Brokerage", "Brokerage Account" }; for (int i = 0; i < accountTitles.Length; i++) { var acct = new BrokerageAccount { AccountNumber = "Z48573988" + i.ToString(), AccountTitle = accountTitles[i], IsRetirement = (i == 0) ? true : false, CashTotal = (i + 1) * 5000, CustomerId = cust.Id, Customer = cust }; //FillAccountSecurities(securities, acct, i); acct.PositionsTotal = acct.Positions.Sum(p => p.Total); acct.Total = acct.PositionsTotal + acct.CashTotal; acct.MarginBalance = (acct.IsRetirement) ? 0.00M : Math.Round(acct.Total / 3, 2); accts.Add(acct); } return(accts); }
public void DataServiceController_AccountReturnedWithoutModification() { //Ensure that Web API method doesn't modify the brokerage account object //Arrange var acctNumber = "1234"; var brokerageAccount = new BrokerageAccount { AccountNumber = "1234" }; var acctRepo = new StubIAccountRepository { GetAccountString = (an) => { brokerageAccount.AccountNumber = an; return(brokerageAccount); } }; var controller = GetDataServiceController(acct: acctRepo); //Act var result = controller.Account(acctNumber); //Assert Assert.AreSame(brokerageAccount, result); Assert.AreSame(acctNumber, result.AccountNumber); }
public void InValidAccountNumber_ReturnsModelStateError() { string accountNum = "12345"; var account = new BrokerageAccount { AccountNumber = accountNum }; var errors = GetModelValidationErrors(account); Assert.AreEqual(1, errors.Count); }
public IHttpActionResult PostAccount(BrokerageAccount acct) { var opStatus = _AccountRepository.InsertAccount(acct); if (!opStatus.Status) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)); } //Generate success response return(CreatedAtRoute("DefaultApi", new { id = acct.AccountNumber }, acct)); }
private BrokerageAccount UpdateAccount(string acctNumber) { //Force update of security values ISecurityRepository securityRepo = new SecurityRepository(); securityRepo.UpdateSecurities(); BrokerageAccount acct = null; acct = DataContext.BrokerageAccounts .Include("Orders") .Include("WatchList") .Include("WatchList.Securities") .Include("Positions") .Include("Positions.Security") .Where(ba => ba.AccountNumber == acctNumber).SingleOrDefault(); if (acct != null && acct.Positions != null && !_LocalDataOnly) { acct.Positions = acct.Positions.OrderBy(p => p.Total).ToList(); //Get account position securities var securities = acct.Positions.Select(p => p.Security).Distinct().ToList(); var positions = acct.Positions; foreach (var pos in positions) { pos.Total = pos.Shares * pos.Security.Last; DataContext.Entry(pos).State = System.Data.EntityState.Modified; } acct.PositionsTotal = acct.Positions.Sum(p => p.Total); acct.Total = acct.PositionsTotal + acct.CashTotal; DataContext.Entry(acct).State = System.Data.EntityState.Modified; try { DataContext.SaveChanges(); } catch { //If we fail simply continue for sample app } } return(acct); }
public int CreateBrokerageAccount(AddBrokerageAccountVm addBrokerageAccountVm) { var brokerageAccount = new BrokerageAccount { Title = addBrokerageAccountVm.Title, IsRetirement = addBrokerageAccountVm.IsRetirement, AccountNumber = addBrokerageAccountVm.AccountNumber, UserId = ActiveUserService.GetUserId(), BrokerageId = addBrokerageAccountVm.BrokerageId }; DbOperationStatus opStatus = BrokerageAccountRepository.InsertBrokerageAccount(brokerageAccount); if (opStatus.OperationSuccessStatus) { return(opStatus.AffectedIndices.First()); } return(-1); }
public DbOperationStatus InsertBrokerageAccount(BrokerageAccount brokerageAccount) { var opStatus = new DbOperationStatus { OperationSuccessStatus = false, AffectedIndices = new List <int>() }; try { DataContext.Set <BrokerageAccount>().Add(brokerageAccount); opStatus.OperationSuccessStatus = DataContext.SaveChanges() > 0; if (opStatus.OperationSuccessStatus) { opStatus.AffectedIndices.Add(brokerageAccount.Id); } } catch (Exception ex) { opStatus = DbOperationStatus.CreateFromException("Error inserting " + brokerageAccount.GetType(), ex); } return(opStatus); }
public bool UpdateBrokerageAccount(EditBrokerageAccountVm editBrokerageAccountVm, BrokerageAccount brokerageAccount) { if (editBrokerageAccountVm.UserId == brokerageAccount.UserId && editBrokerageAccountVm.Id == brokerageAccount.Id) { brokerageAccount.AccountNumber = editBrokerageAccountVm.AccountNumber; brokerageAccount.BrokerageId = editBrokerageAccountVm.BrokerageId; brokerageAccount.IsRetirement = editBrokerageAccountVm.IsRetirement; return(BrokerageAccountRepository.UpdateBrokerageAccount(brokerageAccount).OperationSuccessStatus); } return(false); }
public async Task <OperationStatus> InsertAccountAsync(BrokerageAccount acct) { //simulate insert operation success return(await Task.Run(() => new OperationStatus { Status = true })); }
public DbOperationStatus DeleteBrokerageAccount(BrokerageAccount brokerageAccount) { return(Delete(brokerageAccount)); }
public DbOperationStatus UpdateBrokerageAccount(BrokerageAccount brokerageAccount) { return(Update(brokerageAccount)); }