/// <summary>
        /// Gets the triangle using the key value.
        /// </summary>
        /// <param name="KeyVal">The key value.</param>
        /// <returns>Triangle object</returns>
        /// <exception cref="System.ArgumentOutOfRangeException">If Key value is not found</exception>
        public Triangle GetTriangleUsingKey(String KeyVal)
        {
            try
            {
                Cherwell_Geometry.Objects.Table TheTable = new Cherwell_Geometry.Objects.Table(Rows, Columns);
                TheTable.ValidateInput(KeyVal);

                Triangle TR = TheTable.GetTriangleUsingKey(KeyVal);

                if (TR != null)
                {
                    return(TR);
                }
                else
                {
                    throw new ArgumentOutOfRangeException();
                }
            }
            catch (Exception ex)
            {
                String Msg  = String.Format("Triangle with specified key ({0}) was not found.  Key is outside of range or not valid. ({1})", HttpUtility.HtmlEncode(KeyVal), ex.Message);
                var    resp = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content = new StringContent(Msg), ReasonPhrase = Msg.Replace(".\r\n", "_")
                };
                throw new HttpResponseException(resp);
            }
        }
        /// <summary>
        /// Gets a lsit of all triangles in the table.
        /// </summary>
        /// <returns>List of Triangles</returns>
        /// <exception cref="System.ArgumentOutOfRangeException">There are 0 triangles.</exception>
        public List <Triangle> GetAllTriangles()
        {
            try
            {
                Cherwell_Geometry.Objects.Table TheTable = new Cherwell_Geometry.Objects.Table(Rows, Columns);

                if (TheTable.Triangles.Count >= 0)
                {
                    return(TheTable.Triangles);
                }
                else
                {
                    throw new ArgumentOutOfRangeException();
                }
            }
            catch (Exception ex)
            {
                String Msg  = String.Format("There were 0 triangles returned. ({0})", ex.Message);
                var    resp = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content = new StringContent(Msg), ReasonPhrase = Msg.Replace(".\r\n", "_")
                };
                throw new HttpResponseException(resp);
            }
        }
        /// <summary>
        /// Gets the triangle using coordinates.
        /// </summary>
        /// <param name="P1X">The First Point X coordinate.</param>
        /// <param name="P1Y">The First Point Y coordinate.</param>
        /// <param name="P2X">The Second Point X coordinate.</param>
        /// <param name="P2Y">The Second Point Y coordinate.</param>
        /// <param name="P3X">The Third Point X coordinate.</param>
        /// <param name="P3Y">The Third Point Y coordinate.</param>
        /// <returns></returns>
        public Triangle GetTriangleUsingCoordinates(String P1X, String P1Y, String P2X, String P2Y, String P3X, String P3Y)
        {
            try
            {
                Cherwell_Geometry.Objects.Table TheTable = new Cherwell_Geometry.Objects.Table(Rows, Columns);
                Int16 X1 = 0; Int16 Y1 = 0;
                Int16 X2 = 0; Int16 Y2 = 0;
                Int16 X3 = 0; Int16 Y3 = 0;
                if (
                    Int16.TryParse(P1X, out X1) == false || Int16.TryParse(P1Y, out Y1) == false ||
                    Int16.TryParse(P2X, out X2) == false || Int16.TryParse(P2Y, out Y2) == false ||
                    Int16.TryParse(P3X, out X3) == false || Int16.TryParse(P3Y, out Y3) == false
                    )
                {
                    throw new ArgumentOutOfRangeException("All Input must be valid integers less than 32,767");
                }

                Point P1 = new Point(X1, Y1);
                Point P2 = new Point(X2, Y2);
                Point P3 = new Point(X3, Y3);

                Triangle Result = TheTable.GetTriangleUsingCoordinates(P1, P2, P3);

                if (Result.Key != null)
                {
                    return(Result);
                }
                else
                {
                    throw new ArgumentOutOfRangeException();
                }
            }
            catch (Exception ex)
            {
                String Msg  = String.Format("Triangle with specified coordinates was not found.  Coordinates are outside of range or not valid. ({0})", ex.Message);
                var    resp = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content = new StringContent(Msg), ReasonPhrase = Msg.Replace(".\r\n", "_")
                };
                throw new HttpResponseException(resp);
            }
        }