public void RegisterCollection(ICommandBag bag) { if (baggedCommands.Contains(bag)) { throw new InvalidOperationException("This bag is already loaded."); } CheckDistinct(bag.BagCommands); baggedCommands.Add(bag); try { foreach (var command in bag.BagCommands) { LoadCommand(command); } RightsManager?.SetRightsList(AllRights); } catch (Exception ex) { Log.Error(ex, "Failed to load command bag."); UnregisterCollection(bag); throw; } }
public void UnregisterCollection(ICommandBag bag) { if (baggedCommands.Remove(bag)) { foreach (var com in bag.BagCommands) { UnloadCommand(com); } RightsManager?.SetRightsList(AllRights); } }
public void RegisterCollection(ICommandBag bag) { if (baggedCommands.Contains(bag)) { return; } CheckDistinct(bag.BagCommands); baggedCommands.Add(bag); foreach (var command in bag.BagCommands) { var result = LoadCommand(command); if (!result.Ok) { Log.Error("Failed to load command bag: " + result.Error); UnregisterCollection(bag); throw new InvalidOperationException(result.Error); } } rightsManager?.SetRightsList(AllRights); }