Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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();
        }