コード例 #1
0
        public void CanReadImageFromWebCam_SameUserIdAndAnyRequestTime_ReturnTrue(int userId, int requestDelayMilliSec)
        {
            // Arrange
            _dateTimeProvider.DateTimeNow.Returns(new DateTime(2019, 05, 01, 15, 30, 30, 100));
            _cacheUpdater.Update(userId, _dateTimeProvider.DateTimeNow);
            IImageProviderService imageProviderService = CreateValidImageProviderService();
            DateTime requestTime = RequestTime(requestDelayMilliSec);

            // Act
            bool canReadImageFromWebCam = imageProviderService.CanReadImageFromWebCam(userId, requestTime);

            // Assert
            Assert.That(canReadImageFromWebCam, Is.True);
        }
コード例 #2
0
        public byte[] GetImageAsByteArray(int userId, string userUtc)
        {
            (byte[] imageByteArray, DateTime requestTime) = ReadNewImageFromCache(userId);

            if (imageByteArray != null)
            {
                LogNewImageReadFromCache(userId, requestTime);

                UpdateLastCacheAccess(userId, requestTime);

                return(imageByteArray);
            }

            bool canReadImageFromWebCam = CanReadImageFromWebCam(userId, requestTime);

            if (canReadImageFromWebCam)
            {
                lock (LockCacheUpdaterOverdue)
                {
                    _cacheUpdaterInfo.Update(userId, requestTime);
                }
            }

            imageByteArray = canReadImageFromWebCam
                ? ReadImageFromWebCam(userId, userUtc, requestTime)
                : ReadCurrentImageFromCache(userId);

            return(imageByteArray);
        }