/// <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>())
 {
 }