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