private static IFbWatcher <TModel> CreateWatcher <TModel>()
            where TModel : IModel, new()
        {
            var tableName = typeof(TModel).GetCustomAttribute <DbTransferInfo>()?.MainTableName;

            if (string.IsNullOrWhiteSpace(tableName))
            {
                throw new Exception($"Can't extract table name from: {typeof(TModel)}");
            }

            var triggersFileName = $"{tableName}_TRIGGERS.json";
            var triggersFilePath = Path.Combine(AppSettings.DataDirectoryPath, triggersFileName);

            var options = new WatcherOptions(GetMainDbConnectionString(),
                                             GetTempDbConnectionString());

            var factory = CreateWatcherFactory <TModel>();
            var watcher = factory.CreateWatcher(options);

            var schemeFactory = new SchemeFactory <TModel>(AppConfig.Main.ExternalDbSource,
                                                           AppConfig.Main.ExternalUser, AppConfig.Main.ExternalPassword);

            watcher.AddTriggers(schemeFactory.CreateSchemes(TriggerType.Insert,
                                                            TriggerType.Delete, TriggerType.Update));

            return(watcher);
        }
示例#2
0
        public void StartTheGame()
        {
            CurrentPlayer = new Player("John Doe", "Scientist", 0, 10, 10, 10, 100);

            if (CurrentPlayer.Inventory.Weapons.Count == 0)
            {
                CurrentPlayer.AddItemToInventory(ItemFactory.CreateItem(1));
            }
            CurrentPlayer.AddItemToInventory(ItemFactory.CreateItem(6));
            CurrentPlayer.LearnScheme(SchemeFactory.GetSchemeById(1));

            CurrentWorld    = WorldFactory.CreateWorld();
            CurrentLocation = CurrentWorld.LocationAt(0, 0);
        }
示例#3
0
        private static void PopulatePlayerSchemes(JObject data, Player player)
        {
            string fileversion = ParserVersion(data);

            switch (fileversion)
            {
            case "1.0":
                foreach (JToken schemeToken in (JArray)data[nameof(GameSession.CurrentPlayer)][nameof(Player.Schemes)])
                {
                    int    schemeId = (int)schemeToken[nameof(Scheme.ID)];
                    Scheme scheme   = SchemeFactory.GetSchemeById(schemeId);

                    player.LearnScheme(scheme);
                }
                break;

            default:
                throw new InvalidDataException($"File version {fileversion} is not supported");
            }
        }
        private static IFbWatcher <TModel> CreateWatcher <TModel>()
            where TModel : IModel, new()
        {
            var tableName = typeof(TModel).GetCustomAttribute <DbTransferInfo>()?.MainTableName;

            if (string.IsNullOrWhiteSpace(tableName))
            {
                throw new Exception($"Can't extract table name from: {typeof(TModel)}");
            }

            var options = new WatcherOptions(TestsContext.MainDbConnectionString,
                                             TestsContext.TempDbConnectionString);

            var factory = CreateWatcherFactory <TModel>();
            var watcher = factory.CreateWatcher(options);

            var schemeFactory = new SchemeFactory <TModel>(TestsContext.ExternalDbSource,
                                                           TestsContext.ExternalUser, TestsContext.ExternalPassword);

            watcher.AddTriggers(schemeFactory.CreateSchemes(TriggerType.Insert,
                                                            TriggerType.Delete, TriggerType.Update));

            return(watcher);
        }