Кросплатформовий застосунок на базі .NET MAUI для управління кінозалами та розкладом сеансів. Проєкт перебудовано згідно з принципами багатошарової архітектури та патерну MVVM.
Рішення розділене на 4 логічні проєкти для забезпечення чіткого розподілу відповідальностей:
- Entities: Базові моделі даних CinemaHall.cs та MovieSession.cs.
- Enums: Перерахування для типізації даних Genre.cs та HallType.cs.
Відповідає виключно за роботу зі сховищем даних:
- Database: Статичне сховище (Storage), що містить початкові дані (3 зали та 12 сеансів).
- ICinemaRepo: Інтерфейс для забезпечення принципу Dependency Inversion.
- CinemaRepo: Клас репозиторію, методи якого повертають DB Models.
- DTO: Класи CinemaHallDTOs.cs та MovieSessionDTOs.cs, які містять окремі моделі для списків та детальної інформації.
- ICinemaService.cs: Інтерфейс сервісного рівня.
- CinemaService.cs: Отримує дані з репозиторію та конвертує їх у DTO-моделі.
Рівень представлення, реалізований на базі патерну MVVM:
- ViewModels: Класи MainViewModel.cs, HallDetailsViewModel.cs та SessionDetailsViewModel.cs. Використано CommunityToolkit.Mvvm для реактивного програмування.
- Views: Сторінки MainPage, HallDetailsPage та SessionDetailsPage. Файли .xaml.cs містять лише ініціалізацію та задання BindingContext.
- Dependency Injection: Впровадження залежностей реалізовано через вбудований IoC-контейнер у MauiProgram.cs.
- Повна підтримка переходів між трьома сторінками (Список залів -> Деталі залу -> Деталі сеансу) з можливістю повернення назад.
- UI взаємодіє виключно з сервісами та DTO-моделями, не маючи прямого доступу до репозиторіїв чи DB-моделей.
- Вибір конкретного залу користувачем.
- Автоматичне підвантаження сеансів для обраного залу.
- Перехід до детальної інформації про кожен сеанс (у версії MAUI).
- Автоматичний підрахунок загальної тривалості фільмів у залі.
- Відображення детальної статистики залу та розкладу його сеансів.
- Можливість багаторазового перегляду різних залів без перезапуску програми.
- Склонуйте репозиторій на свій комп'ютер.
- Відкрийте файл рішення
CinemaManager.slnу Visual Studio. - Виберіть стартовий проєкт: натисніть правою кнопкою на
CinemaManager.MAUI-> Set as StartUp Project. - Натисніть
F5або кнопкуStartдля запуску застосунку. - Для коректної роботи потрібен встановлений .NET 9.