public GebruikerKlantViewModel GebruikerKlantViewModel(Gebruiker gebruiker) { GebruikerKlantViewModel gkvm = new GebruikerKlantViewModel(); if(gebruiker != null) { if (gebruiker.Rol == Rol.ADMINISTRATOR) { gkvm.setDepartementen(uow.DepartementRepository.All); } if (gebruiker.Rol == Rol.DEPARTEMENT_ADMINISTRATOR) { gkvm.setDepartementen(gebruiker.Departementen()); } } return gkvm; }
public UurRegistratieViewModel UurRegistratieViewModel(Gebruiker gebruiker, bool gefactureerd) { UurRegistratieViewModel gkvm = new UurRegistratieViewModel(); gkvm.Gefactureerd = gefactureerd; if (gebruiker != null) { if (gebruiker.Rol == Rol.ADMINISTRATOR) { gkvm.setDepartementen(uow.DepartementRepository.All); } if (gebruiker.Rol == Rol.DEPARTEMENT_ADMINISTRATOR || gebruiker.Rol == Rol.USER) { gkvm.setDepartementen(gebruiker.Departementen()); } } return gkvm; }
public KlantViewModel KlantViewModel(Gebruiker gebruiker) { KlantViewModel kvm = new KlantViewModel(); kvm.Klant = new Klant(); if (gebruiker != null) { if (gebruiker.Rol == Rol.ADMINISTRATOR) { IEnumerable<Departement> alleDepartementen = uow.DepartementRepository.All; kvm.setDepartementen(alleDepartementen); } if (gebruiker.Rol == Rol.DEPARTEMENT_ADMINISTRATOR) { kvm.setDepartementen(gebruiker.Departementen()); } } return kvm; }
public IEnumerable<Klant> AlleKlanten(Gebruiker gebruiker) { List<Klant> alleKlanten = new List<Klant>(); if (gebruiker != null) { if (gebruiker.Rol == Rol.ADMINISTRATOR) { alleKlanten = uow.KlantRepository.All.ToList(); } if (gebruiker.Rol == Rol.DEPARTEMENT_ADMINISTRATOR) { foreach (Departement dep in gebruiker.Departementen()) { alleKlanten.AddRange(dep.Klanten()); } } } return alleKlanten; }
public IEnumerable<Departement> AlleMogelijkeDepartementen(Gebruiker gebruiker) { List<Departement> departementen = new List<Departement>(); IEnumerable<DepartementKlant> alleDepartementKlanten = uow.DepartementKlantRepository.All; if (gebruiker != null) { if (gebruiker.Rol == Rol.ADMINISTRATOR) { departementen.AddRange(alleDepartementKlanten.Select(dk => dk.Departement).Distinct()); } if (gebruiker.Rol == Rol.DEPARTEMENT_ADMINISTRATOR) { IEnumerable<Departement> depsVanGebruiker = gebruiker.Departementen(); departementen.AddRange( alleDepartementKlanten.Select(dk => dk.Departement) .Where(d => depsVanGebruiker.Contains(d)) .Distinct()); } } return departementen; }
public void OntkoppelDepartementVanKlant(int departementId, int klantId, Gebruiker gebruiker) { Klant klant = uow.KlantRepository.Find(klantId); Departement departement = uow.DepartementRepository.Find(departementId); if (klant == null || departement == null) { throw new Exception("Klant of departement onbekend"); } if (klant.DepartementKlanten.Count < 2) { throw new Exception("Een klant moet minstens aan één departement gekoppeld zijn"); } if (gebruiker.Rol == Rol.DEPARTEMENT_ADMINISTRATOR) { if (!gebruiker.Departementen().Contains(departement)) { throw new Exception("Als departement administrator kan je enkel klanten ontkoppelen van je eigen departementen"); } } DepartementKlant ontkoppeld = klant.OntkoppelVanDepartement(departement); uow.DepartementKlantRepository.Delete(ontkoppeld.Id); uow.saveChanges(); }
public void Delete(int klantId, Gebruiker gebruiker) { Klant klant = uow.KlantRepository.Find(klantId); if (klant == null) { throw new Exception("Geen klant gevonden"); } if (!klant.Verwijderbaar()) { throw new Exception("De Klant is niet verwijderbaar omdat er al uurregistraties en/of facturen aan gekoppeld zijn"); } List<DepartementKlant> departementKlanten = klant.DepartementKlanten.ToList(); List<GebruikerKlant> gebruikerKlanten = klant.GebruikerKlanten(); if (gebruiker.Rol == Rol.DEPARTEMENT_ADMINISTRATOR) { IEnumerable<Departement> klantDepartementen = departementKlanten.Select(dk => dk.Departement); IEnumerable<Departement> gebruikerDepartementen = gebruiker.Departementen(); if (klantDepartementen.Except(gebruikerDepartementen).Count() > 0) { throw new Exception("Als departement administrator kan je geen klanten verwijderen die koppelingen hebben met departementen waar je niet voor bevoegd bent"); } } gebruikerKlanten.Select(gk => gk.Id).ToList().ForEach( id => uow.GebruikerKlantRepository.Delete(id) ); departementKlanten.Select(dk => dk.Id).ToList().ForEach( id => uow.DepartementKlantRepository.Delete(id) ); uow.KlantRepository.Delete(klantId); uow.saveChanges(); }
public IEnumerable<Departement> MogelijkeDepartementenKlantGebruiker(int klantId, Gebruiker gebruiker) { Klant klant = uow.KlantRepository.Find(klantId); if (klant == null || gebruiker == null) { throw new Exception("Klant of gebruiker onbekend"); } IEnumerable<Departement> result = null; IEnumerable<Departement> alleDepartementen = uow.DepartementRepository.All; IEnumerable<Departement> klantDepartementen = klant.Departementen(); if (gebruiker.Rol == Rol.ADMINISTRATOR) { result = alleDepartementen.Except(klantDepartementen); } if (gebruiker.Rol == Rol.DEPARTEMENT_ADMINISTRATOR) { IEnumerable<Departement> gebruikerDepartementen = gebruiker.Departementen(); result = gebruikerDepartementen.Except(klantDepartementen); } return result; }