public ActionResult CalculateRowAndColumn(VertexCoordinates c)
        {
            if (c != null)
            {
                string rowLetter = CalculateRow(c.V1y, c.V2y);

                bool isRightAngleOnTop;

                if (c.V1y < c.V2y)
                {
                    isRightAngleOnTop = false;
                }
                else
                {
                    isRightAngleOnTop = true;
                }

                string columnNumber = CalculateColumn(c.V1x, c.V3x, isRightAngleOnTop);

                string[] validRows    = new string[] { "A", "B", "C", "D", "E", "F" };
                string[] validColumns = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };

                if (!string.IsNullOrEmpty(rowLetter) && !string.IsNullOrEmpty(columnNumber) &&
                    validRows.Contains(rowLetter) && validColumns.Contains(columnNumber))
                {
                    ViewBag.Result = rowLetter + columnNumber;
                }
                else
                {
                    ViewBag.Result = "Error: check inputs";
                }
            }

            return(View());
        }
        public ActionResult CalculateTriangleCoordinates(string row, string column)
        {
            VertexCoordinates c = new VertexCoordinates();

            if (!string.IsNullOrWhiteSpace(row) && !string.IsNullOrWhiteSpace(column))
            {
                Tuple <int, int> rCoordinates = GetRowCoordinates(row);
                Tuple <int, int> cCoordinates = GetColumnCoordinates(column);

                int intColumn = Convert.ToInt32(column);

                if (rCoordinates == null || cCoordinates == null)
                {
                    ViewBag.Message = "Error: check inputs";
                    return(View());
                }
                if (intColumn % 2 == 0)
                {
                    c.V1x = cCoordinates.Item1 > cCoordinates.Item2 ? cCoordinates.Item1 : cCoordinates.Item2;
                    c.V1y = rCoordinates.Item1 > rCoordinates.Item2 ? rCoordinates.Item1 : rCoordinates.Item2;
                    c.V2x = cCoordinates.Item1 > cCoordinates.Item2 ? cCoordinates.Item1 : cCoordinates.Item2;
                    c.V2y = rCoordinates.Item1 < rCoordinates.Item2 ? rCoordinates.Item1 : rCoordinates.Item2;
                    c.V3x = cCoordinates.Item1 < cCoordinates.Item2 ? cCoordinates.Item1 : cCoordinates.Item2;
                    c.V3y = rCoordinates.Item1 > rCoordinates.Item2 ? rCoordinates.Item1 : rCoordinates.Item2;
                }
                else
                {
                    c.V1x = cCoordinates.Item1 < cCoordinates.Item2 ? cCoordinates.Item1 : cCoordinates.Item2;
                    c.V1y = rCoordinates.Item1 < rCoordinates.Item2 ? rCoordinates.Item1 : rCoordinates.Item2;
                    c.V2x = cCoordinates.Item1 < cCoordinates.Item2 ? cCoordinates.Item1 : cCoordinates.Item2;
                    c.V2y = rCoordinates.Item1 > rCoordinates.Item2 ? rCoordinates.Item1 : rCoordinates.Item2;
                    c.V3x = cCoordinates.Item1 > cCoordinates.Item2 ? cCoordinates.Item1 : cCoordinates.Item2;
                    c.V3y = rCoordinates.Item1 < rCoordinates.Item2 ? rCoordinates.Item1 : rCoordinates.Item2;
                }
            }

            return(View(c));
        }