public void UpdateStock(StockOfClientInfo stockOfClientInfo) { var stockToUpdate = this.stockPriceTableRepository.GetStockPriceEntityByStockType(stockOfClientInfo.TypeOfStocks); if (stockToUpdate == null) { throw new ArgumentException("This stock doesnt exist"); } stockToUpdate.PriceOfStock = stockOfClientInfo.PriceOfStock; stockPriceTableRepository.SaveChanges(); }
public ActionResult <HttpResponseMessage> RemoveStock([FromBody] StockOfClientInfo stockOfClientInfo) { HttpResponseMessage response = new HttpResponseMessage(); try { this.clientsService.RemoveStock(stockOfClientInfo); response.StatusCode = System.Net.HttpStatusCode.OK; return(response); } catch (Exception) { response.StatusCode = System.Net.HttpStatusCode.Conflict; return(response); } }
public void RegisterStockForNewClient(StockOfClientInfo args) { if (!CheckIfStockPriseConteinStockOfClientByTypeOfStock(args.TypeOfStocks)) { throw new ArgumentException("StockPrice Table doesnt contain this type of stock"); } var entityToAdd = new StockOfClientEntity() { AccountId = args.AccountId, TypeOfStocks = args.TypeOfStocks.ToUpper(), quantityOfStocks = args.quantityOfStocks }; stockOfClientTableRepository.Add(entityToAdd); stockOfClientTableRepository.SaveChanges(); logger.Info($"Stock {entityToAdd.Id} of type {entityToAdd.TypeOfStocks} in quantity {entityToAdd.quantityOfStocks} for account {entityToAdd.AccountId} has been added"); }
public void RemoveStock(StockOfClientInfo stockOfClientInfo) { var stockToRemove = this.stockPriceTableRepository.GetStockPriceEntityByStockType(stockOfClientInfo.TypeOfStocks); if (stockToRemove == null) { throw new ArgumentException("This stock doesnt exist"); } var stocksOfClientsToRemove = this.stockOfClientTableRepository.GetAllStockOfClient().ToList(); for (int i = 0; i < stocksOfClientsToRemove.Count; i++) { stockOfClientTableRepository.Remove(stocksOfClientsToRemove[i]); } stockOfClientTableRepository.SaveChanges(); stockPriceTableRepository.Remove(stockToRemove); stockPriceTableRepository.SaveChanges(); }
private void Registration() { ClientRegistrationInfo clientRegistrationInfo = new ClientRegistrationInfo(); AccountRegistrationInfo accountRegistrationInfo = new AccountRegistrationInfo(); StockOfClientInfo stockOfClientInfo = new StockOfClientInfo(); clientRegistrationInfo.Name = AskUser(KeysForPhrases.RegName); clientRegistrationInfo.Surname = AskUser(KeysForPhrases.RegSurname); clientRegistrationInfo.PhoneNumber = AskUser(KeysForPhrases.RegPhone, true); accountRegistrationInfo.ClientId = clientsService.RegisterNewClient(clientRegistrationInfo); accountRegistrationInfo.Balance = Convert.ToDecimal(AskUser(KeysForPhrases.RegBalance, true)); stockOfClientInfo.ClientsAccountId = clientsService.CreateNewAccountForNewClient(accountRegistrationInfo); if (Convert.ToInt32(AskUser(KeysForPhrases.RegStock, true)) == 1) { stockOfClientInfo.TypeOfStocks = AskUser(KeysForPhrases.RegStockType); stockOfClientInfo.quantityOfStocks = Convert.ToInt32(AskUser(KeysForPhrases.RegStockQuant, true)); if (!clientsService.CheckIfStockPriseConteinStockOfClientByTypeOfStock(stockOfClientInfo.TypeOfStocks)) { StockPriceInfo stockPriceInfo = new StockPriceInfo() { TypeOfStock = stockOfClientInfo.TypeOfStocks }; stockPriceInfo.PriceOfStock = Convert.ToDecimal(AskUser(KeysForPhrases.RegStockPrice, true)); clientsService.RegisterNewTypeOfStock(stockPriceInfo); } clientsService.RegisterStockForNewClient(stockOfClientInfo); } }
public void Register(RegInfo regInfo) { ClientInfo clientInfo = new ClientInfo() { Name = regInfo.Name, Surname = regInfo.Surname, PhoneNumber = regInfo.PhoneNumber }; AccountInfo accountInfo = new AccountInfo() { ClientId = RegisterNewClient(clientInfo), Balance = regInfo.Balance }; int accountId = CreateNewAccountForNewClient(accountInfo); if (regInfo.HaveStoks) { StockOfClientInfo stockOfClientInfo = new StockOfClientInfo() { AccountId = accountId, TypeOfStocks = regInfo.TypeOfStocks, quantityOfStocks = regInfo.quantityOfStocks }; if (!CheckIfStockPriseConteinStockOfClientByTypeOfStock(regInfo.TypeOfStocks)) { RegisterNewTypeOfStock(new StockPriceInfo() { TypeOfStock = regInfo.TypeOfStocks, PriceOfStock = regInfo.PriceOfStock }); } RegisterStockForNewClient(stockOfClientInfo); } }
public void ShouldNotRegisterStockForNewClientIfItDoesntExists() { //Arrange ClientsService clientsService = new ClientsService(clientsTableRepository, accountTableRepository, stockPriceTableRepository, stockOfClientTableRepository, logger); StockOfClientInfo args = new StockOfClientInfo() { ClientsAccountId = 1, TypeOfStocks = "A", quantityOfStocks = 10 }; StockPriceEntity stockPrice = null; stockPriceTableRepository.GetStockPriceEntityByStockType(Arg.Is <string>(w => w == args.TypeOfStocks.ToUpper())).Returns(stockPrice); //Act clientsService.RegisterStockForNewClient(args); //Assert stockOfClientTableRepository.Received(1).Add(Arg.Is <StockOfClientEntity>( w => w.AccountId == args.ClientsAccountId && w.TypeOfStocks == args.TypeOfStocks && w.quantityOfStocks == args.quantityOfStocks)); stockOfClientTableRepository.Received(1).SaveChanges(); }