async public Task <object[]> ExecuteAsync(TableauData data)
        {
            //country and region code
            var arg1Name = TableauKeywords.Arg(0);
            var arg2Name = TableauKeywords.Arg(1);

            if (!data.ContainsKey(arg1Name) || !data.ContainsKey(arg2Name))
            {
                throw new MissingFieldException("Shipping Rate Query cannot run. "
                                                + "Some fields are missing.");
            }

            //arg data
            var countryCodes = data[arg1Name].StringData;
            var postalCodes  = data[arg2Name].StringData;
            var results      = new object[countryCodes.Length];

            var r = new Random();

            for (var i = 0; i < results.Length; i++)
            {
                //simulate changing shipping rates.
                var hashOfNames  = (countryCodes[i], postalCodes[i]).GetHashCode();
                var modOfHash    = hashOfNames % 50;
                var randomNumber = r.Next(1, 100) / 10d;
                var shippingRate = 100 + modOfHash + randomNumber;
                results[i] = shippingRate;
            }

            return(await Task.FromResult(results));
        }
Esempio n. 2
0
        async public Task <object[]> ExecuteAsync(TableauData data)
        {
            //trending search term
            var arg1Name = TableauKeywords.Arg(0);

            if (!data.ContainsKey(arg1Name))
            {
                throw new MissingFieldException("Trending Query cannot run. Search term field is missing.");
            }

            //arg data
            var searchTerms = data[arg1Name].StringData;
            var results     = new object[searchTerms.Length];

            var r = new Random();

            for (var i = 0; i < results.Length; i++)
            {
                //simulate changing exposure per hour.
                var hashOfNames  = searchTerms[i].GetHashCode();
                var modOfHash    = hashOfNames % 50;
                var randomNumber = r.Next(1, 100000);
                var shippingRate = 10 + modOfHash + randomNumber;
                results[i] = shippingRate;
            }

            return(await Task.FromResult(results));
        }