public async Task AddOrUpdateAsync(InsuranceQuotingRequest quote) { if (await GetAsync(quote.Key) != null) { await _context.InsuranceQuotingRequest.ReplaceOneAsync( doc => doc.Key == quote.Key, quote, new UpdateOptions { IsUpsert = true }); } else { await _context.InsuranceQuotingRequest.InsertOneAsync(quote); } }
public async Task <IActionResult> Post([FromBody] QuoteRequestViewModel value) { var newQuateRequest = new InsuranceQuotingRequest() { Key = Guid.NewGuid(), Customer = value.Customer, Vehicle = value.Vehicle, QuoteProcessStatus = new QuoteProcessStatus() { Status = QuoteStatus.Pendding } }; await _repository.AddOrUpdateAsync(newQuateRequest); _eventBus.Publish(new QuoteRequestedIntegrationEvent( newQuateRequest.Key )); _cache.Set(newQuateRequest.Key, newQuateRequest); return(Ok(newQuateRequest.Key)); }