Esempio n. 1
0
        /// <summary>
        /// Loads avatar either from the local cache or from the remote service.
        /// </summary>
        public async Task <Image> GetAvatarAsync(string email, int imageSize, string defaultImageType)
        {
            var imageFileName = _avatarImageNameProvider.Get(email);
            var image         = await _cache.GetImageAsync(imageFileName, null);

            if (image == null)
            {
                image = await LoadFromGravatarAsync(imageFileName, email, imageSize, GetDefaultImageType(defaultImageType));
            }
            return(image);
        }
Esempio n. 2
0
        /// <summary>
        /// Loads avatar either from the local cache or from the remote service.
        /// </summary>
        public async Task <Image> GetAvatarAsync(string email, int imageSize, string defaultImageType)
        {
            var imageFileName = _avatarImageNameProvider.Get(email);
            var image         = await _cache.GetImageAsync(imageFileName, null);

            if (image == null)
            {
                if (email.EndsWith(GitHubPrivateEmailSuffix, StringComparison.OrdinalIgnoreCase))
                {
                    image = await LoadFromGitHubAsync(imageFileName, email, imageSize);
                }
                else
                {
                    image = await LoadFromGravatarAsync(imageFileName, email, imageSize, GetDefaultImageType(defaultImageType));
                }
            }

            return(image);
        }
Esempio n. 3
0
        public async Task GetAvatarAsync_should_not_call_gravatar_if_exist_in_cache()
        {
            var avatar = Resources.User;

            _cache.GetImageAsync(Arg.Any <string>(), null).Returns(avatar);

            var image = await _service.GetAvatarAsync(Email, 1, DefaultImageType.Identicon.ToString());

            image.Should().Be(avatar);
            Received.InOrder(async() =>
            {
                await _cache.Received(1).GetImageAsync($"{Email}.png", null);
            });
            await _cache.DidNotReceive().AddImageAsync(Arg.Any <string>(), Arg.Any <Stream>());
        }