public async Task <string> GetRandomName()
        {
            Storytelling.Info("Getting random name");
            await Task.Delay(10);

            return(GetRandomItem(Adjectives) + " " + GetRandomItem(Animals));
        }
        public async Task <string> GetRandomString()
        {
            Storytelling.Info("Getting random string");

            await Task.Delay(10);

            return(Guid.NewGuid().ToString());
        }
        public Task <HttpResponseMessage> ProduceLogs()
        {
            return(Storytelling.Factory.StartNewAsync("ProduceLogs", async() =>
            {
                var str = await _fooService.GetRandomString();
                Storytelling.Debug("This is a debug message {0}", str);
                str = await _fooService.GetRandomString();
                Storytelling.Info("This is a information message {0}", str);
                str = await _fooService.GetRandomString();
                Storytelling.Warn("This is a warning message {0}", str);

                return Request.CreateResponse(HttpStatusCode.Created, "logs created");
            }));
        }
        public Task <HttpResponseMessage> GetSomething()
        {
            return(Storytelling.Factory.StartNewAsync("GetSomething", async() =>
            {
                var name = await _fooService.GetRandomName();

                // Log to the story
                Storytelling.Info("Prepare something object");
                object something = new
                {
                    Name = name
                };

                // Add data to story
                Storytelling.Data["something"] = something;

                return Request.CreateResponse(something);
            }));
        }