diff --git a/WD7UVN_HFT_2023241.Logic/LogicServices.cs b/WD7UVN_HFT_2023241.Logic/LogicServices.cs index dfb406c..6a4bb26 100644 --- a/WD7UVN_HFT_2023241.Logic/LogicServices.cs +++ b/WD7UVN_HFT_2023241.Logic/LogicServices.cs @@ -26,7 +26,7 @@ namespace WD7UVN_HFT_2023241.Logic this.CRUDOperations = CRUDOperations; } - public IQueryable WhoMaintainsService(int serviceId) + public IQueryable? WhoMaintainsService(int serviceId) { IQueryable query = from employee in CRUDOperations.ReadAllEmployees() @@ -34,10 +34,15 @@ namespace WD7UVN_HFT_2023241.Logic where service.ID == serviceId select employee; + if (query.ToList().Count == 0) + { + throw new NullReferenceException("No such database entry"); + } + return query; } - public Employee WhoIsResponsibleForService(int serviceId) + public Employee? WhoIsResponsibleForService(int serviceId) { var query = from service in CRUDOperations.ReadAllServices() @@ -46,28 +51,54 @@ namespace WD7UVN_HFT_2023241.Logic where service.ID == serviceId select employee; + if (query.ToList().Count == 0) + { + throw new NullReferenceException("No such database entry"); + } + return query.FirstOrDefault(); } -public IQueryable WhoWorksInMaintainerTeam(int maintainerTeamId) + public IQueryable? WhoWorksInMaintainerTeam(int maintainerTeamId) { - return CRUDOperations + var res = CRUDOperations .ReadAllEmployees() .Where(e => e.MAINTAINER_ID == maintainerTeamId); + + if (res.ToList().Count == 0) + { + throw new NullReferenceException("No such database entry"); + } + + return res; } - public IQueryable GetSubordinates(int managerId) + public IQueryable? GetSubordinates(int managerId) { - return CRUDOperations + var res = CRUDOperations .ReadAllEmployees() .Where(e => e.MANAGER_ID == managerId); + + if (res.ToList().Count == 0) + { + throw new NullReferenceException("No such database entry"); + } + + return res; } - public IQueryable WhoUsesService(int serviceId) + public IQueryable? WhoUsesService(int serviceId) { - return CRUDOperations + var res = CRUDOperations .ReadAllCustomers() .Where(c => c.SERVICE_ID == serviceId); + + if (res.ToList().Count == 0) + { + throw new NullReferenceException("No such database entry"); + } + + return res; } } } diff --git a/WD7UVN_HFT_2023241.Repository/CRUD.cs b/WD7UVN_HFT_2023241.Repository/CRUD.cs index 2dcccb7..5638f8c 100644 --- a/WD7UVN_HFT_2023241.Repository/CRUD.cs +++ b/WD7UVN_HFT_2023241.Repository/CRUD.cs @@ -52,12 +52,12 @@ namespace WD7UVN_HFT_2023241.Repository Database.Context.SaveChanges(); } - public Employee ReadEmployee(int employeeId) + public Employee? ReadEmployee(int employeeId) { return Database.Context.Employees.Find(employeeId); } - public IQueryable ReadAllEmployees() + public IQueryable? ReadAllEmployees() { return Database.Context.Employees.AsQueryable(); } @@ -88,12 +88,12 @@ namespace WD7UVN_HFT_2023241.Repository Database.Context.SaveChanges(); } - public Service ReadService(int serviceId) + public Service? ReadService(int serviceId) { return Database.Context.Services.Find(serviceId); } - public IQueryable ReadAllServices() + public IQueryable? ReadAllServices() { return Database.Context.Services.AsQueryable(); } @@ -124,12 +124,12 @@ namespace WD7UVN_HFT_2023241.Repository Database.Context.SaveChanges(); } - public MaintainerTeam ReadMaintainerTeam(int maintainerTeamId) + public MaintainerTeam? ReadMaintainerTeam(int maintainerTeamId) { return Database.Context.Maintainers.Find(maintainerTeamId); } - public IQueryable ReadAllMaintainerTeams() + public IQueryable? ReadAllMaintainerTeams() { return Database.Context.Maintainers.AsQueryable(); } @@ -160,12 +160,12 @@ namespace WD7UVN_HFT_2023241.Repository Database.Context.SaveChanges(); } - public Customer ReadCustomer(int customerId) + public Customer? ReadCustomer(int customerId) { return Database.Context.Customers.Find(customerId); } - public IQueryable ReadAllCustomers() + public IQueryable? ReadAllCustomers() { return Database.Context.Customers.AsQueryable(); }