Приложение поиска дешевых авиабилетов
Пользовательское приложение WPF, реализован паттерн MVVM, принципы SOLID, конфигурирование, логгирование, внедрение зависимостей, работа с БД SQLite посредством Entity Framework Core, работа со сторонним API, юнит-тестирование NUnit.
MainWindow.xaml - Представление (главное окно приложения)
TicketForm.xaml - Представление (элемент пользовательского контроля)
appsettings.json - файл первоначальных настроек приложения
mydb.db - БД SQLite
Program.cs - настройки приложения
Resources - ресурсы (*.jpg)
DB - контекст данных
Migrations - миграции
ViewModel - модель представления.
Controller - контроллер
Processes - процессы
Models - модели данных
Validator - Валидатор
Converters - конверторы json сериализатора
При запуске приложения происходит его первоначальная настройка в Program.cs и запуск представления. Через представление пользователь взаимодействует с приложением. Данные из представления, согласно паттерну MVVM, через Binding и Command передаются в модель представления. Модель представления, реагируя на действия пользователя, передает соответствующие команды Контроллеру. Контроллер обеспечивает запуск необходимых процессов. Процессы взаимодействуют с моделями данных и представлением. В приложении осуществляется работа с БД SQLite посредством Entity Framework Core. Обновление БД осуществляется раз в месяц посредством http - запросов к стороннему API. Список авиабилетов формируется по результатам http - запросов к стороннему API.
Проект спроектирован согласно паттерну MVVM и принципам SOLID.
Все этапы выполнения программы логгируются в файл логов посредством Serilog. Валидация осуществляется FluentValidation.
Зависимости между абстракциями и классами устанавливаются через DI контейнеры Microsoft.Extensions.DependencyInjection
00:01.79 - SaveChanges();
00:00.15 - BulkInsertAsync();
00:01.18 - SaveChanges();
00:00.40 - BulkDeleteAsync();