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); }
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); }
/// <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); }
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); }