コード例 #1
0
        /// <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, EFWorldModuleContext db)
        {
            var itemRepo = moduleManager.GetItemRepo();
            var managers = new List <IModelManager>
            {
                new GameItemDataManager(moduleManager, new EFGameItemDataRepo(db, itemRepo)),
                new LocationItemDataManager(moduleManager, new EFLocationItemDataRepo(db, itemRepo)),
                new CharacterItemDataManager(moduleManager, new EFCharacterItemDataRepo(db, itemRepo)),
                new ExitItemDataManager(moduleManager, new EFExitItemDataRepo(db, itemRepo)),
                new PhysicalItemDataManager(moduleManager, new EFPhysicalItemDataRepo(db, itemRepo)),
                new GeneratorItemDataManager(moduleManager, new EFGeneratorItemDataRepo(db, itemRepo)),
                new GarbageItemDataManager(moduleManager, this, new EFGarbageItemDataRepo(db, itemRepo))
            };

            return(managers);
        }
コード例 #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        public WorldModule(
            IModuleManager moduleManager)
        {
            ModuleManager = moduleManager;
            var connectionString = ModuleManager.GetConfiguration().GetConnectionString("DefaultConnection");
            var dbOptions        = new DbContextOptionsBuilder <BaseContext>();

            dbOptions.UseSqlServer(connectionString);
            Db           = new EFWorldModuleContext(dbOptions.Options);
            Managers     = BuildManagers(ModuleManager, Db);
            Repositories = Managers.SelectMany(x => x.GetRepositories()).ToList();
            ModuleManager.ModuleManagerReadyEvent += () =>
            {
                ModuleReadyEvent?.Invoke();
            };
        }
コード例 #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="db">Entity framework database context</param>
 public EFGeneratorItemDataRepo(
     EFWorldModuleContext db,
     IItemRepo itemRepo) : base(db, db.GetDbSet <GeneratorItemData>())
 {
 }
コード例 #4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="db">Entity framework database context</param>
 public EFExitItemDataRepo(
     EFWorldModuleContext db,
     IItemRepo itemRepo) : base(db, db.GetDbSet <ExitItemData>())
 {
 }
コード例 #5
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="db">Entity framework database context</param>
 public EFLocationItemDataRepo(
     EFWorldModuleContext db,
     IItemRepo itemRepo) : base(db, db.GetDbSet <LocationItemData>())
 {
 }
コード例 #6
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="db">Entity framework database context</param>
 public EFCharacterItemDataRepo(
     EFWorldModuleContext db,
     IItemRepo itemRepo) : base(db, db.GetDbSet <CharacterItemData>())
 {
 }
コード例 #7
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="db">Entity framework database context</param>
 public EFPhysicalItemDataRepo(
     EFWorldModuleContext db,
     IItemRepo itemRepo) : base(db, db.GetDbSet <PhysicalItemData>())
 {
 }
コード例 #8
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="db">Entity framework database context</param>
 public EFGarbageItemDataRepo(
     EFWorldModuleContext db,
     IItemRepo itemRepo) : base(db, db.GetDbSet <GarbageItemData>())
 {
 }