private void HandleResourceAvailable(ResourceAvailableMessage resourceAvailableMessage) { var resource = resourceAvailableMessage.Resource; var timestampedResource = TimestampedResource.Create(resource); _availableResources.Enqueue(timestampedResource); }
private void HandleAddResource(AddResourceMessage addResourceMessage) { // Only add the resource if we didn't already exceed the maximum var success = _availableResources.Count < _maxNumResources; if (success) { var resource = addResourceMessage.Resource; var timestampedResource = TimestampedResource.Create(resource); _availableResources.Enqueue(timestampedResource); } addResourceMessage.ResultTaskCompletionSource.SetResult(success); }
private bool IsResourceExpired(TimestampedResource timestampedResource) { return(_resourcesExpireAfter != null && timestampedResource.Created.Add(_resourcesExpireAfter.Value) < DateTime.Now); }