public HttpResponseMessage PostPropertyDetail(string propertyReference, PropertyDetail propertyDetail)
        {
            Check.If(propertyReference).IsNotNullOrEmpty();
            Check.If(propertyDetail).IsNotNull();

            var result = _propertyDetailService.CreatePropertyDetail(propertyReference, Mapper.Map<Core.Objects.PropertyDetail>(propertyDetail));

            if (result == null)
            {
                return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError };
            }

            var response = new HttpResponseMessage { StatusCode = HttpStatusCode.Created };

            response.Headers.Location = new Uri(Url.Link("GetPropertyDetail", new { propertyReference, propertyDetailReference = result }));

            return response;
        }
        public HttpResponseMessage PutPropertyDetail(string propertyReference, string propertyDetailReference, PropertyDetail propertyDetail)
        {
            Check.If(propertyReference).IsNotNullOrEmpty();
            Check.If(propertyDetailReference).IsNotNullOrEmpty();
            Check.If(propertyDetail).IsNotNull();

            var result = _propertyDetailService.UpdatePropertyDetail(propertyReference, propertyDetailReference, Mapper.Map<Core.Objects.PropertyDetail>(propertyDetail));

            return result
                ? new HttpResponseMessage { StatusCode = HttpStatusCode.OK }
                : new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError };
        }