diff --git a/WD7UVN_HFT_2023241.Repository/CRUD.cs b/WD7UVN_HFT_2023241.Repository/CRUD.cs index 1a796b8..ac44601 100644 --- a/WD7UVN_HFT_2023241.Repository/CRUD.cs +++ b/WD7UVN_HFT_2023241.Repository/CRUD.cs @@ -6,15 +6,26 @@ using WD7UVN_HFT_2023241.Repository; namespace WD7UVN_HFT_2023241.Repository { - public class CustomerRepository + public interface ICRUD : ICustomerRepository, IEmployeeRepository, IMaintainerTeamRepository, IServiceRepository { } + + public interface ICustomerRepository { - public static void CreateCustomer(Customer customer) + public void CreateCustomer(Customer customer); + public Customer ReadCustomer(int customerId); + public IQueryable ReadAllCustomers(); + public void UpdateCustomer(Customer updatedCustomer); + public void DeleteCustomer(int customerId); + } + + public class CustomerRepository : ICustomerRepository + { + public void CreateCustomer(Customer customer) { Database.Context.Customers.Add(customer); Database.Context.SaveChanges(); } - public static Customer ReadCustomer(int customerId) + public Customer ReadCustomer(int customerId) { return Database.Context.Customers.Find(customerId); } @@ -24,7 +35,7 @@ namespace WD7UVN_HFT_2023241.Repository return Database.Context.Customers.AsQueryable(); } - public static void UpdateCustomer(Customer updatedCustomer) + public void UpdateCustomer(Customer updatedCustomer) { Customer existingCustomer = Database.Context.Customers.Find(updatedCustomer.ID); if (existingCustomer != null) @@ -34,7 +45,7 @@ namespace WD7UVN_HFT_2023241.Repository } } - public static void DeleteCustomer(int customerId) + public void DeleteCustomer(int customerId) { Customer customerToDelete = Database.Context.Customers.Find(customerId); if (customerToDelete != null) @@ -45,15 +56,24 @@ namespace WD7UVN_HFT_2023241.Repository } } - public class MaintainerTeamRepository + public interface IMaintainerTeamRepository { - public static void CreateMaintainerTeam(MaintainerTeam maintainerTeam) + public void CreateMaintainerTeam(MaintainerTeam maintainerTeam); + public MaintainerTeam ReadMaintainerTeam(int maintainerTeamId); + public IQueryable ReadAllMaintainerTeams(); + public void UpdateMaintainerTeam(MaintainerTeam updatedMaintainerTeam); + public void DeleteMaintainerTeam(int maintainerTeamId); + } + + public class MaintainerTeamRepository : IMaintainerTeamRepository + { + public void CreateMaintainerTeam(MaintainerTeam maintainerTeam) { Database.Context.Maintainers.Add(maintainerTeam); Database.Context.SaveChanges(); } - public static MaintainerTeam ReadMaintainerTeam(int maintainerTeamId) + public MaintainerTeam ReadMaintainerTeam(int maintainerTeamId) { return Database.Context.Maintainers.Find(maintainerTeamId); } @@ -63,7 +83,7 @@ namespace WD7UVN_HFT_2023241.Repository return Database.Context.Maintainers.AsQueryable(); } - public static void UpdateMaintainerTeam(MaintainerTeam updatedMaintainerTeam) + public void UpdateMaintainerTeam(MaintainerTeam updatedMaintainerTeam) { MaintainerTeam existingMaintainerTeam = Database.Context.Maintainers.Find(updatedMaintainerTeam.ID); if (existingMaintainerTeam != null) @@ -73,7 +93,7 @@ namespace WD7UVN_HFT_2023241.Repository } } - public static void DeleteMaintainerTeam(int maintainerTeamId) + public void DeleteMaintainerTeam(int maintainerTeamId) { MaintainerTeam maintainerTeamToDelete = Database.Context.Maintainers.Find(maintainerTeamId); if (maintainerTeamToDelete != null) @@ -84,15 +104,24 @@ namespace WD7UVN_HFT_2023241.Repository } } - public class ServiceRepository + public interface IServiceRepository { - public static void CreateService(Service service) + public void CreateService(Service service); + public Service ReadService(int serviceId); + public IQueryable ReadAllServices(); + public void UpdateService(Service updatedService); + public void DeleteService(int serviceId); + } + + public class ServiceRepository : IServiceRepository + { + public void CreateService(Service service) { Database.Context.Services.Add(service); Database.Context.SaveChanges(); } - public static Service ReadService(int serviceId) + public Service ReadService(int serviceId) { return Database.Context.Services.Find(serviceId); } @@ -102,7 +131,7 @@ namespace WD7UVN_HFT_2023241.Repository return Database.Context.Services.AsQueryable(); } - public static void UpdateService(Service updatedService) + public void UpdateService(Service updatedService) { Service existingService = Database.Context.Services.Find(updatedService.ID); if (existingService != null) @@ -112,7 +141,7 @@ namespace WD7UVN_HFT_2023241.Repository } } - public static void DeleteService(int serviceId) + public void DeleteService(int serviceId) { Service serviceToDelete = Database.Context.Services.Find(serviceId); if (serviceToDelete != null) @@ -123,15 +152,24 @@ namespace WD7UVN_HFT_2023241.Repository } } - public class EmployeeRepository + public interface IEmployeeRepository { - public static void CreateEmployee(Employee employee) + public void CreateEmployee(Employee employee); + public Employee ReadEmployee(int employeeId); + public IQueryable ReadAllEmployees(); + public void UpdateEmployee(Employee updatedEmployee); + public void DeleteEmployee(int employeeId); + } + + public class EmployeeRepository : IEmployeeRepository + { + public void CreateEmployee(Employee employee) { Database.Context.Employees.Add(employee); Database.Context.SaveChanges(); } - public static Employee ReadEmployee(int employeeId) + public Employee ReadEmployee(int employeeId) { return Database.Context.Employees.Find(employeeId); } @@ -141,7 +179,7 @@ namespace WD7UVN_HFT_2023241.Repository return Database.Context.Employees.AsQueryable(); } - public static void UpdateEmployee(Employee updatedEmployee) + public void UpdateEmployee(Employee updatedEmployee) { Employee existingEmployee = Database.Context.Employees.Find(updatedEmployee.ID); if (existingEmployee != null) @@ -151,7 +189,7 @@ namespace WD7UVN_HFT_2023241.Repository } } - public static void DeleteEmployee(int employeeId) + public void DeleteEmployee(int employeeId) { Employee employeeToDelete = Database.Context.Employees.Find(employeeId); if (employeeToDelete != null) diff --git a/WD7UVN_HFT_2023241.Repository/CompanyDbContext.cs b/WD7UVN_HFT_2023241.Repository/CompanyDbContext.cs index 4da6ac1..ac16ba4 100644 --- a/WD7UVN_HFT_2023241.Repository/CompanyDbContext.cs +++ b/WD7UVN_HFT_2023241.Repository/CompanyDbContext.cs @@ -8,7 +8,7 @@ namespace WD7UVN_HFT_2023241.Repository { public static class Database { - public static CompanyDbContext Context { get; set; } + public static CompanyDbContext Context = new CompanyDbContext(); } public class CompanyDbContext : DbContext { @@ -42,6 +42,24 @@ namespace WD7UVN_HFT_2023241.Repository .HasForeignKey(customer => customer.SERVICE_ID) .OnDelete(DeleteBehavior.Cascade)); + modelBuilder.Entity(service => service + .HasOne() + .WithMany() + .HasForeignKey(service => service.MAINTAINER_ID) + .OnDelete(DeleteBehavior.SetNull)); + + modelBuilder.Entity(team => team + .HasOne() + .WithMany() + .HasForeignKey(team => team.LEADER_ID) + .OnDelete(DeleteBehavior.SetNull)); + + modelBuilder.Entity(emp => emp + .HasOne() + .WithMany() + .HasForeignKey(emp => emp.MANAGER_ID) + .OnDelete(DeleteBehavior.SetNull)); + //loading test values modelBuilder.Entity().HasData( new Customer{ @@ -54,27 +72,27 @@ namespace WD7UVN_HFT_2023241.Repository new Service{ NAME = "Microsoft Exchange", ID = 1, - MAINTAINER = 1} + MAINTAINER_ID = 1} ); modelBuilder.Entity().HasData( new MaintainerTeam{ ID = 1, NAME = "Microsoft Team", - LEADER_EMPLOYEE_ID = 2} + LEADER_ID = 2} ); modelBuilder.Entity().HasData( new Employee{ ID = 1, NAME = "Gipsz Jakab", - MANAGER = 2, + MANAGER_ID = 2, MAINTAINER_ID = 1}, new Employee{ NAME = "Székely Csaba", ID = 3, - MANAGER = 2, + MANAGER_ID = 2, MAINTAINER_ID = 1}, new Employee{