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);
            };
        }
        //Why commented this - explained in the article
        //public ServerData PostServerData(ServerData serverData)
        //{
        //    return serverDataRepository.Add(serverData);
        //}

        public HttpResponseMessage PostServerData(ServerData serverData)
        {
            serverData = ServerDataRepository.Add(serverData);

            var response = Request.CreateResponse(HttpStatusCode.Created, serverData);

            var uri = Url.Link("DefaultApi", new { id = serverData.Id });

            response.Headers.Location = new Uri(uri);

            return(response);
        }
        public HttpResponseMessage POST(ServerInfo s)
        {
            refId = Request.Headers.GetValues("refid").FirstOrDefault <string>();
            logs.TrackEvent("Request received at Http POST Verb with SeverInfo parameter id as: " + s.server_id + " refid:" + refId);

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

            if (serverDataRepository.Add(s))
            {
                return(Request.CreateResponse(HttpStatusCode.Created, "entry created in database"));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }