示例#1
0
        //
        // example data
        //
        // {"number":5,"hailstoneNumber":5,"sequence":[]}
        //

        private static async Task Main(string[] args)
        {
            Thread.Sleep(10000);

            var rawData = await client.GetStringAsync("http://localhost:5000/api/hailstone/5");

            Console.WriteLine(rawData);
            #region hide
            HailstoneData data = JsonConvert.DeserializeObject <HailstoneData>(rawData);
            Console.WriteLine(data.Number);
            Console.WriteLine(data.HailstoneNumber);
            int count = 0;
            foreach (var x in data.Sequence)
            {
                Console.WriteLine($"[{count}] {x}");
                count++;
            }
            #endregion
        }
        public long ComputeHailstoneNumber(long input)
        {
            //return Context.Facts.Find(input).HailstoneNumber;
            //return Context.Facts.Find(input)?.HailstoneNumber ?? 0;

            Logger.LogTrace($"Computing for {input}");

            var result = Context.Facts.Find(input);

            if (result == null)
            {
                result                 = new HailstoneData();
                result.Number          = input;
                result.HailstoneNumber = generator.ComputeHailstoneNumber(input);

                Context.Facts.Add(result);
                Context.SaveChanges();
            }

            return(result.HailstoneNumber);
        }