public async Task ExecuteAsync(CheckForExpiration command, CancellationToken cancellationToken) { var expirationQuanta = await repository.GetExpirationQuantaAsync(cancellationToken); var lastActive = await repository.GetServiceLastActiveAsync(cancellationToken); var inactivityPeriod = command.AsOfDate.Subtract(lastActive); if (inactivityPeriod > expirationQuanta) { string instanceName = await repository.TryGetServiceInstanceNameAsync(cancellationToken); string partitionId = await repository.GetPartitionIdAsync(cancellationToken); string serviceTypeUri = await repository.GetServiceTypeUriAsync(cancellationToken); await partitions.VacateInstanceAsync(partitionId, serviceTypeUri, instanceName, command.InstanceId); } }