/// <summary> /// Build all the item managers for the module /// </summary> /// <param name="db"></param> /// <param name="itemRepo"></param> /// <returns></returns> List <IModelManager> BuildManagers(IModuleManager moduleManager, EFScriptModuleContext db) { var itemRepo = moduleManager.GetItemRepo(); var managers = new List <IModelManager> { new JavascriptItemDataManager(moduleManager, this, new EFJavascriptItemDataRepo(db, itemRepo)), }; return(managers); }
/// <summary> /// Constructor /// </summary> public ScriptModule( IModuleManager moduleManager) { ModuleManager = moduleManager; var connectionString = ModuleManager.GetConfiguration().GetConnectionString("DefaultConnection"); var dbOptions = new DbContextOptionsBuilder <BaseContext>(); dbOptions.UseSqlServer(connectionString); Db = new EFScriptModuleContext(dbOptions.Options); Managers = BuildManagers(ModuleManager, Db); Repositories = Managers.SelectMany(x => x.GetRepositories()).ToList(); ModuleManager.ModuleManagerReadyEvent += () => { ModuleReadyEvent?.Invoke(); }; }
/// <summary> /// Constructor /// </summary> /// <param name="db">Entity framework database context</param> public EFJavascriptItemDataRepo( EFScriptModuleContext db, IItemRepo itemRepo) : base(db, db.GetDbSet <JavascriptItemData>()) { }