Warehouse.Depot.RegisterHooks C# (CSharp) Method

RegisterHooks() public static method

Register database commit hooks
public static RegisterHooks ( ) : void
return void
        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();
                }
            };
        }