diff --git a/Apollon.EntityFramework/Apollon.EntityFramework.csproj b/Apollon.EntityFramework/Apollon.EntityFramework.csproj index 6f467de..3a3e7c7 100644 --- a/Apollon.EntityFramework/Apollon.EntityFramework.csproj +++ b/Apollon.EntityFramework/Apollon.EntityFramework.csproj @@ -8,6 +8,10 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/Apollon.EntityFramework/Commands/CreateTournamentCommand.cs b/Apollon.EntityFramework/Commands/CreateTournamentCommand.cs index a3c4bc0..3c3a3f9 100644 --- a/Apollon.EntityFramework/Commands/CreateTournamentCommand.cs +++ b/Apollon.EntityFramework/Commands/CreateTournamentCommand.cs @@ -13,16 +13,16 @@ namespace Apollon.EntityFramework.Commands public class CreateTournamentCommand : ICreateTournamentCommand { - private readonly TournamentsDBContextFactory _contextFactory; + private readonly TournamentsDbContextFactory _contextFactory; - public CreateTournamentCommand(TournamentsDBContextFactory contextFactory) + public CreateTournamentCommand(TournamentsDbContextFactory contextFactory) { _contextFactory = contextFactory; } public async Task Execute(Tournament tournament) { - using (TournamentsDBContext context = _contextFactory.Create()) + using (TournamentsDbContext context = _contextFactory.Create()) { TournamentDto tournamentDto = new TournamentDto() { diff --git a/Apollon.EntityFramework/Commands/DeleteTournamentCommand.cs b/Apollon.EntityFramework/Commands/DeleteTournamentCommand.cs index 76f4adf..4eafca8 100644 --- a/Apollon.EntityFramework/Commands/DeleteTournamentCommand.cs +++ b/Apollon.EntityFramework/Commands/DeleteTournamentCommand.cs @@ -11,16 +11,16 @@ namespace Apollon.EntityFramework.Commands { public class DeleteTournamentCommand : IDeleteTournamentCommand { - private readonly TournamentsDBContextFactory _contextFactory; + private readonly TournamentsDbContextFactory _contextFactory; - public DeleteTournamentCommand(TournamentsDBContextFactory contextFactory) + public DeleteTournamentCommand(TournamentsDbContextFactory contextFactory) { _contextFactory = contextFactory; } public async Task Execute(Guid id) { - using (TournamentsDBContext context = _contextFactory.Create()) + using (TournamentsDbContext context = _contextFactory.Create()) { TournamentDto tournamentDto = new TournamentDto() { diff --git a/Apollon.EntityFramework/Commands/UpdateTournamentCommand.cs b/Apollon.EntityFramework/Commands/UpdateTournamentCommand.cs index 26693f2..e90567f 100644 --- a/Apollon.EntityFramework/Commands/UpdateTournamentCommand.cs +++ b/Apollon.EntityFramework/Commands/UpdateTournamentCommand.cs @@ -11,16 +11,16 @@ namespace Apollon.EntityFramework.Commands { public class UpdateTournamentCommand : IUpdateTournamentCommand { - private readonly TournamentsDBContextFactory _contextFactory; + private readonly TournamentsDbContextFactory _contextFactory; - public UpdateTournamentCommand(TournamentsDBContextFactory contextFactory) + public UpdateTournamentCommand(TournamentsDbContextFactory contextFactory) { _contextFactory = contextFactory; } public async Task Execute(Tournament tournament) { - using (TournamentsDBContext context = _contextFactory.Create()) + using (TournamentsDbContext context = _contextFactory.Create()) { TournamentDto tournamentDto = new TournamentDto() { diff --git a/Apollon.EntityFramework/Queries/GetAllTournamentsQuery.cs b/Apollon.EntityFramework/Queries/GetAllTournamentsQuery.cs index f0eb944..318b65a 100644 --- a/Apollon.EntityFramework/Queries/GetAllTournamentsQuery.cs +++ b/Apollon.EntityFramework/Queries/GetAllTournamentsQuery.cs @@ -12,16 +12,16 @@ namespace Apollon.EntityFramework.Queries { public class GetAllTournamentsQuery : IGetAllTournamentsQuery { - private readonly TournamentsDBContextFactory _contextFactory; + private readonly TournamentsDbContextFactory _contextFactory; - public GetAllTournamentsQuery(TournamentsDBContextFactory contextFactory) + public GetAllTournamentsQuery(TournamentsDbContextFactory contextFactory) { _contextFactory = contextFactory; } public async Task> Execute() { - using (TournamentsDBContext context = _contextFactory.Create()) + using (TournamentsDbContext context = _contextFactory.Create()) { IEnumerable tournamentsDtos = await context.Tournaments.ToListAsync(); diff --git a/Apollon.EntityFramework/TournamentsDBContext.cs b/Apollon.EntityFramework/TournamentsDBContext.cs index cf17785..4db141f 100644 --- a/Apollon.EntityFramework/TournamentsDBContext.cs +++ b/Apollon.EntityFramework/TournamentsDBContext.cs @@ -8,9 +8,9 @@ using System.Threading.Tasks; namespace Apollon.EntityFramework { - public class TournamentsDBContext : DbContext + public class TournamentsDbContext : DbContext { - public TournamentsDBContext(DbContextOptions options) : base(options) + public TournamentsDbContext(DbContextOptions options) : base(options) { } diff --git a/Apollon.EntityFramework/TournamentsDBContextFactory.cs b/Apollon.EntityFramework/TournamentsDBContextFactory.cs index 2a8250a..ae4dbb2 100644 --- a/Apollon.EntityFramework/TournamentsDBContextFactory.cs +++ b/Apollon.EntityFramework/TournamentsDBContextFactory.cs @@ -7,18 +7,18 @@ using System.Threading.Tasks; namespace Apollon.EntityFramework { - public class TournamentsDBContextFactory + public class TournamentsDbContextFactory { private readonly DbContextOptions _options; - public TournamentsDBContextFactory(DbContextOptions options) + public TournamentsDbContextFactory(DbContextOptions options) { _options = options; } - public TournamentsDBContext Create() + public TournamentsDbContext Create() { - return new TournamentsDBContext(_options); + return new TournamentsDbContext(_options); } } } diff --git a/Apollon.EntityFramework/TournamentsDesignTimeDbContextFactory - Copy.cs b/Apollon.EntityFramework/TournamentsDesignTimeDbContextFactory - Copy.cs new file mode 100644 index 0000000..ae4dbb2 --- /dev/null +++ b/Apollon.EntityFramework/TournamentsDesignTimeDbContextFactory - Copy.cs @@ -0,0 +1,24 @@ +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Apollon.EntityFramework +{ + public class TournamentsDbContextFactory + { + private readonly DbContextOptions _options; + + public TournamentsDbContextFactory(DbContextOptions options) + { + _options = options; + } + + public TournamentsDbContext Create() + { + return new TournamentsDbContext(_options); + } + } +} diff --git a/Apollon.WPF/Apollon.WPF.csproj b/Apollon.WPF/Apollon.WPF.csproj index 13b16ca..6f15bfc 100644 --- a/Apollon.WPF/Apollon.WPF.csproj +++ b/Apollon.WPF/Apollon.WPF.csproj @@ -14,6 +14,7 @@ + diff --git a/Apollon.WPF/App.xaml.cs b/Apollon.WPF/App.xaml.cs index 9e4df1d..3a3d36e 100644 --- a/Apollon.WPF/App.xaml.cs +++ b/Apollon.WPF/App.xaml.cs @@ -23,7 +23,7 @@ namespace Apollon.WPF public partial class App : Application { private readonly ModalNavigationStore _modalNavigationStore; - private readonly TournamentsDBContextFactory _tournamentsDBContextFactory; + private readonly TournamentsDbContextFactory _tournamentsDbContextFactory; private readonly IGetAllTournamentsQuery _getAllTournamentQuery; private readonly ICreateTournamentCommand _createTournamentCommand; private readonly IUpdateTournamentCommand _updateTournamentCommand; @@ -34,15 +34,15 @@ namespace Apollon.WPF public App() { - string connectionString = "Server=NATHALIE-PC\NATLINUXDB;Database=OfficeOrganizer;Trusted_Connection=True;MultipleActiveResultSets=true\"; + string connectionString = "Data Source=NATHALIE-PC\\NATLINUXDB;Database=Apollon;Trusted_Connection=True;MultipleActiveResultSets=true"; _modalNavigationStore = new ModalNavigationStore(); - _tournamentsDBContextFactory = new TournamentsDBContextFactory( + _tournamentsDbContextFactory = new TournamentsDbContextFactory( new DbContextOptionsBuilder().UseSqlServer(connectionString).Options); - _getAllTournamentQuery = new GetAllTournamentsQuery(); - _createTournamentCommand = new CreateTournamentCommand(); - _updateTournamentCommand = new UpdateTournamentCommand(); - _deleteTournamentCommand = new DeleteTournamentCommand(); + _getAllTournamentQuery = new GetAllTournamentsQuery(_tournamentsDbContextFactory); + _createTournamentCommand = new CreateTournamentCommand(_tournamentsDbContextFactory); + _updateTournamentCommand = new UpdateTournamentCommand(_tournamentsDbContextFactory); + _deleteTournamentCommand = new DeleteTournamentCommand(_tournamentsDbContextFactory); _tournamentStore = new TournamentsStore(_getAllTournamentQuery, _createTournamentCommand, _updateTournamentCommand, _deleteTournamentCommand); _selectedTournamentStore = new SelectedTournamentsStore(_tournamentStore); } diff --git a/Apollon.WPF/Stores/TournamentsStore.cs b/Apollon.WPF/Stores/TournamentsStore.cs index 407ec94..bc7f509 100644 --- a/Apollon.WPF/Stores/TournamentsStore.cs +++ b/Apollon.WPF/Stores/TournamentsStore.cs @@ -1,4 +1,6 @@ -using Apollon.Domain.Models; +using Apollon.Domain.Commands; +using Apollon.Domain.Models; +using Apollon.Domain.Queries; using System; using System.Collections.Generic; using System.Linq; @@ -9,16 +11,34 @@ namespace Apollon.WPF.Stores { public class TournamentsStore { + private readonly IGetAllTournamentsQuery _getAllTournamentQuery; + private readonly ICreateTournamentCommand _createTournamentCommand; + private readonly IUpdateTournamentCommand _updateTournamentCommand; + private readonly IDeleteTournamentCommand _deleteTournamentCommand; + + public TournamentsStore(IGetAllTournamentsQuery getAllTournamentQuery, + ICreateTournamentCommand createTournamentCommand, + IUpdateTournamentCommand updateTournamentCommand, + IDeleteTournamentCommand deleteTournamentCommand) + { + _getAllTournamentQuery = getAllTournamentQuery; + _createTournamentCommand = createTournamentCommand; + _updateTournamentCommand = updateTournamentCommand; + _deleteTournamentCommand = deleteTournamentCommand; + } + public event Action TournamentAdded; public event Action TournamentUpdated; public async Task Add(Tournament tournament) { + await _createTournamentCommand.Execute(tournament); TournamentAdded?.Invoke(tournament); } public async Task Update (Tournament tournament) { + await _updateTournamentCommand.Execute(tournament); TournamentUpdated?.Invoke(tournament); } }