//IRepositoryManager public void RegisterModule(IExtensionObjectsModule module) { List<IExtensionObject> addedExtensionObjects = new List<IExtensionObject>(); foreach (IExtensionObject extObject in module.ExtensionObjects) { try { AddExtensionObject(extObject); addedExtensionObjects.Add(extObject); } catch (Exception ex) { foreach (IExtensionObject extensionObject in addedExtensionObjects) { RemoveExtensionObject(extensionObject); } throw; } } this.modules.Add(module); }
public bool HandleCannotAddExtensionObject(IExtensionObjectsModule module, IExtensionObject extensionObject, Exception exception) { logger.Info(string.Format("({0}:{1}) -> {2}", module.Name, extensionObject.DataObject, exception)); return true; }
public ExtensionObject(Guid repositoryIdentifier, IExtensionObjectsModule owner, object dataObject) { RepositoryIdentifier = repositoryIdentifier; Owner = owner; DataObject = dataObject; }
public void RemoveModule(IExtensionObjectsModule module) { if (!modules.Contains(module)) throw new MissingModuleException(module); foreach (IExtensionObject extObject in module.ExtensionObjects) RemoveExtensionObject(extObject); }