예제 #1
0
            public async Task <Unit> Handle(AddStockCommand request, CancellationToken cancellationToken)
            {
                var apiResult = await _apiService.GetStock(request.Symbol);

                if (apiResult == null)
                {
                    throw new NotFoundException("Symbol is not found");
                }

                var existingStock = await _stockRepository.GetStock(request.Symbol);

                if (existingStock == null)
                {
                    await _stockRepository.CreateStock(new Stock
                    {
                        Symbol            = request.Symbol,
                        Market            = apiResult.Market,
                        Time              = apiResult.Time,
                        Timezone          = apiResult.Timezone,
                        LongName          = apiResult.LongName,
                        ShortName         = apiResult.ShortName,
                        Currency          = apiResult.Currency,
                        FinancialCurrency = apiResult.FinancialCurrency,
                        Language          = apiResult.Language,
                        QuoteType         = apiResult.QuoteType
                    });
                }

                return(Unit.Value);
            }
예제 #2
0
        /// <inheritdoc/>
        public Stock CreateStock(Stock stock)
        {
            if (stock == null)
            {
                throw new ArgumentNullException(nameof(stock));
            }

            return(stockRepository.CreateStock(stock));
        }
예제 #3
0
        public Stock CreateStock(decimal currentPrice, string issuingCompany, string stockCode, string stockName)
        {
            if (currentPrice == 00.00m)
            {
                throw new InValidStockException(_invalidStock);
            }

            var newStockDto = _stockRepository.CreateStock(new StockDTO()
            {
                CurrentPrice   = currentPrice,
                IssuingCompany = issuingCompany,
                StockCode      = stockCode,
                StockName      = stockName
            });
            var stock = AutoMapper.Mapper.Map <StockDTO, Stock>(newStockDto);

            return(stock);
        }
 public void CreateStock_WhenStockIsNull_Expect_ArgumentNullException()
 {
     // Act, Assert
     Assert.Throws <ArgumentNullException>(() => stockRepository.CreateStock(null));
 }