protected override async Task <Unit> SendImplementation(SendDockerRunParamsRequest request, CancellationToken cancellation) { var collection = await _collectionFactory.Get <SendDockerRunParamsRequest>(cancellation); await collection.InsertOneAsync(request, GetInsertOneOptions.Value, cancellation); return(Unit.Value); }
protected override async Task <DateTimeOffset> GetLatestByServiceAndContainerNamesImplementation( GetLatestByServiceAndContainerNamesRequest request, CancellationToken cancellation) { var collection = await _collectionFactory.Get <LogEntry>(cancellation); var filter = Builders <LogEntry> .Filter.Where(x => x.ServiceName == request.ServiceName && x.ContainerName == request.ContainerName); var cursor = await collection.FindAsync(filter, GetFindOptions.Value, cancellation); var entry = await cursor.FirstOrDefaultAsync(cancellation); return(entry == null ? default : entry.EventDate); }
public override async Task <HealthCheckResponse> Handle(HealthCheckRequest request, CancellationToken cancellationToken) { try { IMongoCollection <LogEntry> logEntries = await _collectionFactory.Get <LogEntry>(cancellationToken); var response = await _retryProvider.RetryOn <MongoConnectionException, long>( x => true, x => false, () => logEntries.CountDocumentsAsync(new FilterDefinitionBuilder <LogEntry>().Empty)); return(Healthy(Engine.MongoDb.Name)); } catch (Exception ex) { return(Unhealthy(Engine.MongoDb.Name, ex.ToString())); } }