public NotificationModule(IWebServiceReceiverStrategy receiverStrategy, ActivityTracker tracker) : base(BaseUrl) { _tracker = tracker; _receiverStrategy = receiverStrategy; Post["/notify"] = request => { var message = this.Bind <NotificationEvent>(); message.GeneratedOnUtc = message.GeneratedOnUtc.ToUniversalTime(); message.State = MessageStateTypes.Delivered; message.ReceivedOnUtc = DateTime.UtcNow; Logger.Info("Received Notification ({0}) {1}", message.EventType, message.Id); _receiverStrategy.Execute(message); return(Response.AsJson(new { Message = "Success" }, HttpStatusCode.Accepted)); }; Get["/artifact/{NotificationId}"] = _ => { var restRequest = this.Bind <HealthCheckArtifact>(); var artifact = ArtifactManager.Get(restRequest.Name, restRequest.NotificationId); var response = Response.FromStream(artifact, restRequest.ContentType); response.Headers.Add("Content-Disposition", string.Format("attachment; filename=wolfpack-{0}.txt", restRequest.NotificationId)); return(response); }; Get["/start"] = _ => Response.AsJson(new StatusResponse { Info = _tracker.StartEvent, Status = "Running" }); Get["/list"] = _ => Response.AsJson(_tracker.Notifications.ToList()); }