public PersistingImageQueue(IPersistence persistence, IImageQueueSerializer imageQueueSerializer, IImageQueue queue, ILogger logger) { _persistence = persistence; _imageQueueSerializer = imageQueueSerializer; _queue = queue; _logger = logger.ForContext <PersistingImageQueue>(); }
public PersistingImageQueueTests() { _enqueuedImageIds = new[] { CreateImageId("1"), CreateImageId("2"), CreateImageId("3") }; _innerQueue = A.Fake <IImageQueue>(); A.CallTo(() => _innerQueue.QueuedImageIds).Returns(_enqueuedImageIds); _persistence = A.Fake <IPersistence>(); _serializer = A.Fake <IImageQueueSerializer>(); A.CallTo(() => _serializer.Serialize(A <IEnumerable <SourceQualifiedImageId> > .That.IsSameSequenceAs(_enqueuedImageIds))).Returns(EnqueuedImageIdsJson); _sut = new PersistingImageQueue(_persistence, _serializer, _innerQueue, A.Fake <ILogger>()); }
public void UpdateWallpaperFrom(IImageQueue imageQueue) { _wallpaperUpdateSubscriptions.Add(Observable .Interval(TimeSpan.FromSeconds(10)) // TODO: Make this a configurable setting .SelectMany(i => Observable.FromAsync(_ => imageQueue.Dequeue())) .SelectMany(o => Observable.FromAsync(_ => o .Map(async i => { _logger.Information("Setting wallpaper to {ImageId} from source {SourceId}", i.Id.ImageId.Value, i.Id.SourceId.Value); await _wallpaperEnvironment.SetWallpaper(i.Id.SourceId.Value, i.Id.ImageId.Value, _logger); _logger.Information("Wallpaper set to {ImageId} from source {SourceId}", i.Id.ImageId.Value, i.Id.SourceId.Value); }) .ValueOr(TaskConstants.Completed))) .Subscribe()); }
public ImageQueueModule(IImageQueue imageQueue) : base("/imageQueue") { Get["/images"] = _ => imageQueue.QueuedImageIds.Select(id => new ImageIdViewModel(id)); }