Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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());
        }