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); }
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); }
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); }