public PlugLocation LoadByName(string name) { using (PlugLocationFactory factory = PlugLocationFactory.GetInstance()) { factory.Context = this.FactoryContext; return(factory.InternalLoadByName(name)); } }
public void InsertAll(PlugIn plug) { try { this.FactoryContext.BeginTransaction(); ValidateInstance(plug); using (PlugInFactory factory = PlugInFactory.GetInstance()) { factory.Context = this.FactoryContext; factory.InternalInsert(plug); } using (PlugLocationFactory locationFactory = PlugLocationFactory.GetInstance()) { locationFactory.Context = this.FactoryContext; foreach (PlugLocation location in plug.Locations) { location.PlugId = plug.PlugId; locationFactory.InternalInsert(location); } using (PlugFileFactory fileFactory = PlugFileFactory.GetInstance()) { fileFactory.Context = this.FactoryContext; foreach (PlugFile file in plug.Files) { file.DestinationLocationId = locationFactory.InternalLoadByName(file.DestinationPath).PlugLocationId; file.PlugId = plug.PlugId; fileFactory.InternalInsert(file); } using (ClassDefinitionFactory classDefinitionFactory = ClassDefinitionFactory.GetInstance()) { classDefinitionFactory.Context = this.FactoryContext; foreach (ClassDefinition classDefinition in plug.ClassDefinitions) { classDefinition.PlugId = plug.PlugId; int fileId = -1; foreach (PlugFile file in plug.Files) { if (file.PlugFileName == classDefinition.FileName) { fileId = file.PlugFileId; break; } } if (fileId == -1) { throw new Exception("Not found corresponding file for class definition!"); } classDefinition.FileId = fileId; classDefinitionFactory.InternalInsert(classDefinition); } using (BindablePointDefinitionFactory bindablePointDefinitionFactory = BindablePointDefinitionFactory.GetInstance()) { bindablePointDefinitionFactory.Context = this.FactoryContext; foreach (BindablePointDefinition bindPointDef in plug.BindablePointDefinitions) { bindPointDef.ClassDefinitionId = classDefinitionFactory.InternalLoadByClassName(bindPointDef.ClassDefinitionName).ClassDefinitionId; bindablePointDefinitionFactory.InternalInsert(bindPointDef); } } } } } // TODO: something else?.. this.FactoryContext.Commit(); } catch (Exception ex) { this.FactoryContext.RollBack(); throw; } }