public static void RegisterHooks() {
Hook<Depot>.CommitUpdate += (sender, depot) => {
depot.SetModified();
};
Hook<Depot>.CommitInsert += (sender, depot) => {
depot.DepotKey = depot.GetUniqueDepotKey();
depot.SetModified();
// Grant all organization users access to the depot by creating permissions for each user
QueryResultRows<OrganizationPermission> orgPermissions = Db.SQL<OrganizationPermission>("SELECT o FROM Warehouse.OrganizationPermission o WHERE o.Organization=?", depot.Organization);
foreach (OrganizationPermission permission in orgPermissions) {
DepotPermission depotPermission = Db.SQL<DepotPermission>("SELECT o FROM Warehouse.DepotPermission o WHERE o.User=?", permission.User).First;
if (depotPermission != null) {
continue;
}
new DepotPermission() { User = permission.User, Depot = depot };
}
};
Hook<Depot>.BeforeDelete += (sender, depot) => {
var result = Db.SQL<DepotPermission>("SELECT o FROM Warehouse.DepotPermission o WHERE o.Depot=?", depot);
foreach (DepotPermission s in result) {
s.Delete();
}
QueryResultRows<DepotSoftware> depotSoftwares = Db.SQL<DepotSoftware>("SELECT o FROM Warehouse.DepotSoftware o WHERE o.Depot=?", depot);
foreach (DepotSoftware s in depotSoftwares) {
s.Delete();
}
QueryResultRows<DefaultDepot> defaultDepots = Db.SQL<DefaultDepot>("SELECT o FROM Warehouse.DefaultDepot o WHERE o.Depot=?", depot);
foreach (DefaultDepot s in defaultDepots) {
s.Delete();
}
QueryResultRows<DepotHostService> depotHostServices = Db.SQL<DepotHostService>("SELECT o FROM Warehouse.DepotHostService o WHERE o.Depot=?", depot);
foreach (DepotHostService s in depotHostServices) {
s.Delete();
}
};
}