/// <summary> /// Mapper function to transform vendor's model to our model /// </summary> /// <param name="vendorData"></param> /// <returns></returns> /// <remarks>In real code, mapper libraries will be used.</remarks> private CustomerRewardsProfile TransformData(VendorXRewardsData vendorData) { var mappedData = new CustomerRewardsProfile() { LevelInformation = new RewardsLevel() { Level = vendorData.Level, PointsEarnedYTD = vendorData.PointsEarnedYTD, PointsEarnedLifetime = vendorData.PointsEarnedLifetime }, NotesInformation = vendorData.Notes }; return(mappedData); }
/// <summary> /// Simulate retrieving vendor's Rewards information via a HTTPs Request /// </summary> /// <param name="vendorCustomerId">Customer ID used in vendor's system.</param> /// <returns>VendorXRewardsData object that is deserialized from vendor's HTTP response.</returns> /// <remarks>TODO: MAKE REAL CALLS TO VENDER'S API TO RETRIEVE CUSTOMER'S DATA</remarks> public async Task <VendorXRewardsData> GetRewardsDataAsync(Guid vendorCustomerId) { //[MOCK] CREATING A RANDOM VendorXRewardsData OBJECT ADD ADDED ARTIFICIAL DELAY TO SIMULATE A RESPONSE FROM VENDOR //const int RANDOM_SEED = 0; //var random = new Random(RANDOM_SEED); var random = new Random(); var randomPointEarned = random.Next(2000); var response = new VendorXRewardsData() { Level = random.Next(5), PointsEarnedYTD = randomPointEarned, PointsEarnedLifetime = randomPointEarned * random.Next(1, 10), Notes = MockGenerateNotes(random.Next(5)) }; await Task.Delay(random.Next(300, 1500)).ConfigureAwait(false); return(response); }