// POST: api/Addresses
        public HttpResponseMessage PostAddress(Address address)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest, ModelState);
            }
            try
            {
                address = service.Addresses.Create(address);
                service.Save();
                var response = Request.CreateResponse(HttpStatusCode.Created, address);

                string uri = Url.Link("DefaultApi", new { id = address.Id });
                response.Headers.Location = new Uri(uri);

                return response;
            }
            catch (Exception ex)
            {

                return Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
            }
        }
        // PUT: api/Addresses/5
        public HttpResponseMessage PutAddress(int id, Address address)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest, ModelState);
            }
            if (id != address.Id)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest, "Addresses id is not the same with given id");
            }

            try
            {
                service.Addresses.Update(address);
                service.Save();
            }
            catch (Exception ex)
            {
                if (!AddressExists(id))
                {
                    return Request.CreateResponse(HttpStatusCode.NotFound, "Address with given id not found");
                }
                return Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
            }
            return Request.CreateResponse(HttpStatusCode.OK, address);
        }