// ���������� ����� � ���� ������. // ������������� ����������, ���� ���� ��������� ������������ ������� ��� // �� �������� �������. public Graph Add(Graph graph) { // �������� ����� �� ������������ ������. if (graph.N > _maxN) { throw new FormatException($"���������� ������ � ����� ������ ���� ������, ��� {_maxN}"); } GraphContext context = new GraphContext(graph); // �������� �� ���������. if (!context.CheckConnectivity()) { throw new FormatException("���� ������ ���� ��������"); } ExactAlgorithmCore exactAlgorithm = new ExactAlgorithmCore(); int R = exactAlgorithm.FindRadius(context); graph.R = R; return(_graphDao.Add(graph)); }
// Добавление графа в базу данных. // Выбрасывается исключение, если граф превышает максимальные размеры или // не является связным. public Graph Add(Graph graph) { // Проверка графа на максимальный размер. if (graph.N > _maxN) { throw new FormatException($"Количество вершин в графе должно быть меньше, чем {_maxN}"); } GraphContext context = new GraphContext(graph); // Проверка на связность. if (!context.CheckConnectivity()) { throw new FormatException("Граф должен быть связаным"); } // Работа точного алгоритма ExactAlgorithmCore exactAlgorithm = new ExactAlgorithmCore(); // нахождение реального радиуса графа при помощи точного алгоритма int R = exactAlgorithm.FindRadius(context); graph.R = R; // добавление нового графа return(_graphDao.Add(graph)); }