flowchart LR
actor1[Пользователь]
uc1((Добавление списка вопросов))
uc2((Выбирает количество билетов и вопросов))
uc3((Получает файл с билетами в PDF формате ))
actor1 --> uc1
uc1 --> uc2
uc2 --> uc3
sequenceDiagram
participant Пользователь
participant Система
Пользователь->>Система: Добавляет список вопросов
Пользователь->>Система: Указывает количество вопросов в билете
Пользователь->>Система: Указывает количество билетов
Система->>Система: Генерирует билеты
Система->>Пользователь: Выдает PDF‑файл с билетами
flowchart
subgraph Library
subgraph Core
Interfaces((Interfaces))
Models[Models]
Models-.Реализует.->Interfaces
end
subgraph Infrastructure
Exporters[Exporters]
Exporters-.Реализует.->Interfaces
Repositories[Repositories]
Repositories-.Реализует.->Interfaces
end
subgraph Service
Factories[Factories]
Factories-.Реализует.->Interfaces
Factories--Зависит-->Models
Generators[Generators]
Generators-.Реализует.->Interfaces
end
end
subgraph Presentation layer
API[API]
end
API-->Library
Ключевые функции:
- Хранение вопросов и билетов в JSON-файле.
- Генерация билетов по запросу пользователя (количество вопросов варьируется с количеством билетов).
- Экспорт в PDF (используя библиотеку QuestPDF)
namespace ExamPaper.Core.Interfaces
{
public interface IQuestion
{
Guid Id { get; }
string Text { get; }
}
}using System;
using System.Collections.Generic;
namespace ExamPaper.Core.Interfaces
{
public interface IExamPaper
{
Guid Id { get; }
string Title { get; }
IReadOnlyCollection<IQuestion> Questions { get; }
}
}PVS-Studio - static analyzer for C, C++, C#, and Java code.