Skip to content

DMOoF25/TheMovie

Repository files navigation

Contributors Forks Stargazers downloads Issues

TheMovie

Demonstrate HLD and LLD for a simple WPF application using MVVM, Dependency Injection, and the Repository Pattern.

Screenshot-menu-admin Screenshot-editMovieView Screenshot-editScreeningView Screenshot-EditBookingView

Indholdsfortegnelse

Om

TheMovie er et simpelt WPF-program til at administrere bestillinger af billettere og visning af film. Det demonstrerer arkitekturprincipper som MVVM, Dependency Injection og Repository-mønsteret.

Funktionalitet

  • Liste, tilføj, rediger og slet film.
  • Liste, tilføj, rediger og slet filminstruktør for film.
  • Liste, tilføj, rediger og slet biograf.
  • Liste, tilføj, rediger og slet sal for biograf.
  • Liste, tilføj, rediger og slet visninger (screenings) for film.

Teknologier

  • WPF (.net 9) # Det grafiske brugergrænsefladelag baseret på XAML.

Krav

  • Windows 10 eller nyere
  • .NET 9 SDK eller nyere

Installation

  1. Klon dette repository: `git clone
  2. Naviger til projektmappen: cd TheMovie
  3. Kør powershell script for at hente eksempel data: .\CopySampleData.ps1
  4. Byg og kør applikationen: dotnet run --project src/TheMovie.UI/TheMovie.UI.csproj
  5. Brug applikationen til at administrere film, biografer og visninger.

Centrale begreber

  • Dependency Injection: Konfigureret i App.OnStartup via Host.CreateDefaultBuilder.
  • Repository-mønster: In-memory generisk base + konkret Movie-repository.
  • MVVM: ViewModels eksponerer bindbar tilstand og ICommand-instancer.
  • Validering: Simpel kommando-gating og input-parsing (DurationText).
  • Udvidbarhed: Udskift in-memory-repo med en persistent implementering ved at opdatere registreringer.

Roadmap-idéer

  • Reel persistens (SQLite / EF Core) til flere brugere.

Projektdokumentation

HLD

Ordliste

Se Ordliste for en dansk-engelsk ordliste.

LLD

Solution structure

src/
    TheMovie.Domain/            # Core domain logic
        Entities/               # Core domain entity types (e.g., Movie)
        ValueObjects/           # Immutable value objects (e.g., Genre, if added) (Other domain)
    TheMovie.Application/       # Pure business logic; no UI or infra dependencies
        Abstractions/           # Interfaces (e.g., IMovieRepository) used by higher layers
        DependencyInjection.cs  # Extension method to register application services
    TheMovie.Infrastructure/
        Data/                   # In-memory repository implementations
        DependencyInjection.cs  # Registers infrastructure services (repositories)
    TheMovie.UI/
        Views/                  # WPF Pages/Windows (AddMovieView, MainWindow)
        ViewModels/             # MVVM ViewModel classes (MovieViewModel, option VMs)
        Converters/             # WPF value converters (e.g., NullToVisibilityConverter)
        Commands/               # Reusable ICommand implementations (RelayCommand)
        App.xaml(.cs)           # WPF application bootstrapping + DI host setup
    tests/
    TheMovie.UI.Tests/
        Fakes/                  # Test doubles (e.g., FakeMovieRepository)
        ViewModels/             # Unit tests for ViewModels

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •