コード例 #1
0
        public APIModule()
        {
            Get("/api/stats", args =>
            {
                string stats = JsonConvert.SerializeObject(GlobalStatistics.Instance);
                return(Response.AsText(stats));
            });


            //Add new job to the queue
            Post("/api/jobs", args =>
            {
                string requestBody            = Request.Body.AsString();
                SampleDocumentJob documentJob = JsonConvert.DeserializeObject <SampleDocumentJob>(requestBody);

                var job = JobQueue.Instance.Enqueue(documentJob);

                var result = new {
                    id    = job.Id,
                    state = job.State
                };
                return(Response.AsText(JsonConvert.SerializeObject(result)));
            });

            //gets specific job info
            Get("/api/jobs/{id}", args =>
            {
                IJob documentJob = GlobalStatistics.Instance.Jobs.FirstOrDefault(x => x.Id == Guid.Parse(args.id));
                if (documentJob != null)
                {
                    return(Response.AsText(JsonConvert.SerializeObject(documentJob)));
                }
                return(Response.AsText("Job not found."));
            });
        }
コード例 #2
0
        private static async Task Consumer_Received(object sender, BasicDeliverEventArgs @event)
        {
            var body    = @event.Body;
            var message = Encoding.UTF8.GetString(body);

            SampleDocumentJob documentJob = JsonConvert.DeserializeObject <SampleDocumentJob>(message);

            JobQueue.Instance.Enqueue(documentJob);

            await Task.Yield();
        }
コード例 #3
0
        private SampleDocumentJob RandomJob()
        {
            //Prepare sample document job
            var documentInfo = new SampleDocumentJob();

            documentInfo.Title       = LoremNET.Lorem.Words(5, 8);
            documentInfo.Description = LoremNET.Lorem.Words(5, 40);

            documentInfo.Data = new List <string>();
            for (int i = 0; i < LoremNET.Lorem.Number(5, 10); i++)
            {
                documentInfo.Data.Add(LoremNET.Lorem.Words(5, 8));
            }

            documentInfo.ReceipentEmail = LoremNET.Lorem.Email();

            return(documentInfo);
        }
コード例 #4
0
        public async Task <string> Generate(SampleDocumentJob info)
        {
            await Task.Delay(5000);

            return("");
        }