Esempio n. 1
0
        public void GetConstructedUri_Crop_MatchesExpected(Enumeration.CropType cropType)
        {
            var query = new GetSpartanImage()
                        .Crop(cropType);

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"profile/h5/profiles/{null}/spartan?crop={cropType}", uri);
        }
Esempio n. 2
0
        public void GetConstructedUri_Complex_MatchesExpected(string gamertag, int size, Enumeration.CropType cropType)
        {
            var query = new GetSpartanImage()
                        .ForPlayer(gamertag)
                        .Size(size)
                        .Crop(cropType);

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"profile/h5/profiles/{gamertag}/spartan?size={size}&crop={cropType}", uri);
        }
Esempio n. 3
0
        /// <summary>
        ///     An optional crop that will be used to determine what portion of the Spartan is returned in the image.
        /// </summary>
        /// <param name="cropType">Crop that will be used to determine what portion of the Spartan is returned.</param>
        public GetSpartanImage Crop(Enumeration.CropType cropType)
        {
            Parameters["crop"] = cropType.ToString();

            return(this);
        }
Esempio n. 4
0
        public async Task <string> GetSpartanImageUrl(string gamertag, ImageSize size = ImageSize.ExtraSmall, Enumeration.CropType crop = Enumeration.CropType.Full)
        {
            gamertag = gamertag.ToUpper();
            var data = await _db.FindAsync <SpartanImageData>(gamertag);

            if (data == null || (DateTime.UtcNow - data.Timestamp.ToUniversalTime()).TotalDays > 3)
            {
                var query = new GetSpartanImage().ForPlayer(gamertag).Size((int)size).Crop(crop);
                var image = await _session.Query(query);

                if (image == null)
                {
                    return(null);
                }

                if (data == null)
                {
                    data = new SpartanImageData(gamertag, image.Uri, DateTime.UtcNow);
                    _db.InsertAsync(data);
                }
                else
                {
                    data.Data      = image.Uri;
                    data.Timestamp = DateTime.UtcNow;
                    //await _db.UpdateAsync(data);
                }
            }

            return(data.Data);
        }