public async Task <Quote> Handle(CreateRequest <Quote> request, CancellationToken cancellationToken) { var quote = await _client.Quotes.GetDocumentQuery().Where(c => c.Id == request.Item.Id || c.Symbol == request.Item.Symbol).ToAsyncEnumerable().FirstOrDefault(); if (quote == null) { QuoteDocument quoteDocument = new QuoteDocument { Id = ObjectId.GenerateNewId().ToString(), Symbol = request.Item.Symbol, Open = request.Item.Open, PreviousClose = request.Item.PreviousClose, Hight = request.Item.Hight, Low = request.Item.Low, Price = request.Item.Price, Volume = request.Item.Volume, Change = request.Item.Change, ChangePercent = request.Item.ChangePercent, LastRequest = DateTime.Now, LatestTradingDay = request.Item.LatestTradingDay }; await _client.Quotes.CreateDocumentAsync(quoteDocument); return(quoteDocument); } else { quote.Symbol = request.Item.Symbol; quote.Open = request.Item.Open; quote.PreviousClose = request.Item.PreviousClose; quote.Hight = request.Item.Hight; quote.Low = request.Item.Low; quote.Price = request.Item.Price; quote.Volume = request.Item.Volume; quote.Change = request.Item.Change; quote.ChangePercent = request.Item.ChangePercent; quote.LastRequest = DateTime.Now; quote.LatestTradingDay = request.Item.LatestTradingDay; await _client.Quotes.ReplaceDocumentAsync(quote.Id, quote); return(quote); } }
public void GenerateQuoteDocument() { QuoteDocument quoteDocument = new QuoteDocument(); quoteDocument.GenerateQuoteDocument(); }