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); }
/// <inheritdoc/> public Stock CreateStock(Stock stock) { if (stock == null) { throw new ArgumentNullException(nameof(stock)); } return(stockRepository.CreateStock(stock)); }
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)); }