public ServerDataModule(IServerDataRepository serverDataRepository)
            : base("/serverdata")
        {
            _serverDataRepository = serverDataRepository;

            Get["/"] = _ => Response.AsJson <object>(serverDataRepository.GetAll());

            //Get["/{id:int}"] = _ => FormatterExtensions.AsJson<object>(Response, serverDataRepository.Get(_.id));

            Get["/{id:int}"] = _ => NegotiatorExtensions
                               .WithModel(Negotiate.WithStatusCode(HttpStatusCode.OK), serverDataRepository.Get(_.id));

            Post["/"] = _ =>
            {
                var data = serverDataRepository.Add(this.Bind <ServerData>());

                return(HttpStatusCode.OK);
            };

            Put["/{id:int}"] = _ =>
            {
                var data = this.Bind <ServerData>();
                data.Id = _.id;

                serverDataRepository.Update(data);

                return(HttpStatusCode.OK);
            };

            Delete["/{id:int}"] = _ =>
            {
                serverDataRepository.Delete(_.id);
                return(HttpStatusCode.OK);
            };
        }
        public void PutServerData(int id, ServerData serverData)
        {
            serverData.Id = id;

            if (!ServerDataRepository.Update(serverData))
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
        }
        public HttpResponseMessage PUT(ServerInfo s)
        {
            refId = Request.Headers.GetValues("refid").FirstOrDefault <string>();
            logs.TrackEvent("Request received at Http PUT Verb with ServerInfo parameter id as: " + s.server_id + " refid:" + refId);

            //msg.Send(s.ToString());

            if (serverDataRepository.Update(s))
            {
                return(Request.CreateResponse(HttpStatusCode.OK, "updated"));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.ExpectationFailed, "update fail"));
            }
        }