public IHttpActionResult GetTableProperties(long tableId)
        {
            try
            {
                var connectionString = Request.Headers.GetValues("connectionString").FirstOrDefault();

                HttpRequires.IsNotNull(connectionString, "Ivnalid Connection");
                HttpRequires.IsTrue(tableId >= 0, "Invalid Table Id");

                var response = _propertyDal.RetrieveByTableId(tableId, connectionString);

                HttpAssert.Success(response);
                HttpAssert.NotNull(response, "Unable to find property results for table");
                return(Ok(response.Result));
            }
            catch (NotFoundException)
            {
                return(NotFound());
            }
            catch (ArgumentException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        /// <summary>
        /// Method to get the properties for a table (includes the properties for the
        /// table's columns)
        /// </summary>
        /// <param name="tableId"></param>
        /// <returns></returns>
        private List <ExtendedPropertyModel> GetProperties(long tableId)
        {
            var connectionString = Request.Headers["connectionString"].FirstOrDefault();

            HttpRequires.IsNotNull(connectionString, "Ivnalid Connection");
            HttpRequires.IsTrue(tableId >= 0, "Invalid Table Id");

            var dalResp = _propertyDal.RetrieveByTableId(tableId, connectionString);

            HttpAssert.Success(dalResp);
            HttpAssert.NotNull(dalResp, "Unable to find property results for table");

            return(dalResp.Result.ToList());
        }