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.")); }); }
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(); }
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); }
public async Task <string> Generate(SampleDocumentJob info) { await Task.Delay(5000); return(""); }