public DataInitializationProcess(ILogger logger, DataInitialization options) { _logger = logger; _options = options; if (!_options.DirectoryName.EndsWith("/")) { _options.DirectoryName = _options.DirectoryName + "/"; } }
/// <summary> /// Applies all pending updates to the database schema. /// </summary> public void ApplyAllPendingUpdates() { using (var installationContext = new EntityDataContext()) { var isNewDatabase = !installationContext.Database.GetAppliedMigrations().Any(); installationContext.Database.Migrate(); if (isNewDatabase) { var dataInitialization = new DataInitialization(this); dataInitialization.CreateInitialData(); } } }
public static IWebHost SeedData(this IWebHost host) { using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var context = services.GetService <Kibol_AlertContext>(); var userManager = services.GetService <UserManager <User> >(); context.Database.Migrate(); var seeder = new DataInitialization(context, userManager); seeder.SeedClubs(); seeder.SeedUser(); } return(host); }
private void InitTestData() { Directory.GetFiles(AppDomain.CurrentDomain.GetData("ContentRootPath").ToString() + "\\App_Data\\DbInitializer", "*.Workflows.json") .ToList() .ForEach(path => { string json = File.ReadAllText(path); var dbContent = JsonConvert.DeserializeObject <JObject>(json); if (dbContent["workflows"] != null) { DataInitialization.InitWorkflows(dc, dbContent["workflows"].ToList()); } }); }
private IPersistenceContextProvider DeterminePersistenceContextProvider(string[] args, ILoggerFactory loggerFactory) { IPersistenceContextProvider contextProvider; if (args.Contains("-demo")) { contextProvider = new InMemoryPersistenceContextProvider(); var initialization = new DataInitialization(contextProvider, loggerFactory); initialization.CreateInitialData(); } else { contextProvider = this.PrepareRepositoryManager(args.Contains("-reinit"), args.Contains("-autoupdate"), loggerFactory); } return(contextProvider); }
public static IHost SeedData(this IHost host) { using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var context = services.GetService <ApplicationDbContext>(); var userManager = services.GetService <UserManager <AppUser> >(); context.Database.Migrate(); var seeder = new DataInitialization(context, userManager); seeder.SeedUsers(); seeder.SeedClinics(); seeder.SeedSpecializations(); seeder.SeedDoctors(); } return(host); }
private IPersistenceContextProvider PrepareRepositoryManager(bool reinit, bool autoupdate) { PersistenceContextProvider.InitializeSqlLogging(); var manager = new PersistenceContextProvider(); if (reinit || !manager.DatabaseExists()) { Log.Info("The database is getting (re-)initialized..."); manager.ReCreateDatabase(); var initialization = new DataInitialization(manager); initialization.CreateInitialData(); Log.Info("...initialization finished."); } else if (!manager.IsDatabaseUpToDate()) { if (autoupdate) { Console.WriteLine("The database needs to be updated before the server can be started. Updating..."); manager.ApplyAllPendingUpdates(); Console.WriteLine("The database has been successfully updated."); } else { Console.WriteLine("The database needs to be updated before the server can be started. Apply update? (y/n)"); var key = Console.ReadLine()?.ToLowerInvariant(); if (key == "y") { manager.ApplyAllPendingUpdates(); Console.WriteLine("The database has been successfully updated."); } else { Console.WriteLine("Cancelled the update process, can't start the server."); return(null); } } } else { // everything is fine and ready } return(manager); }
private void TestDataInitialization(IPersistenceContextProvider contextProvider) { var initialization = new DataInitialization(contextProvider, new NullLoggerFactory()); initialization.CreateInitialData(); // Loading game configuration using var context = contextProvider.CreateNewConfigurationContext(); var gameConfiguraton = context.Get <DataModel.Configuration.GameConfiguration>().FirstOrDefault(); Assert.That(gameConfiguraton, Is.Not.Null); // Testing loading of an account using var accountContext = contextProvider.CreateNewPlayerContext(gameConfiguraton); var account1 = accountContext.GetAccountByLoginName("test1", "test1"); Assert.That(account1, Is.Not.Null); Assert.That(account1.LoginName, Is.EqualTo("test1")); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Canva MainForm = new Canva(); UnityContainer UnityContainerInit = new UnityContainer(); DataInitialization InitializatioForm = UnityContainerInit.Resolve <DataInitialization>(new OrderedParametersOverride(new object[] { MainForm.Width, MainForm.Height })); MainForm.InitializatioForm = InitializatioForm; MainForm.Workspace = InitializatioForm.ReturnWorkspace(); Application.Run(MainForm); //Application.Run(new Canva()); }
static void Main(string[] args) { bool initializeFlag = false; DataInitialization initialize = new DataInitialization(); var logic = new CommunityLogic(); if (initializeFlag) { logic.serializer.RestartData(); initialize.Run(); logic.serializer.Serialize(); Console.WriteLine("Data Initialized"); } logic.serializer.Deserialize(); var display = new CommunityDisplay(logic); display.WelcomeScreen(); }
public static void Init() { var dc = DbAgent.InitDc(); if (dc.Table <Workflow>().FirstOrDefault() != null) { return; } Directory.GetFiles(Database.ContentRootPath + "\\App_Data\\DbInitializer", "*.Workflows.json") .ToList() .ForEach(path => { string json = File.ReadAllText(path); var dbContent = JsonConvert.DeserializeObject <JObject>(json); if (dbContent["workflows"] != null) { dc.DbTran(() => DataInitialization.InitWorkflows(dc, dbContent["workflows"].ToList())); } }); }
public void SetupDatabaseAndTestLoadingData() { var manager = new PersistenceContextProvider(); manager.ReCreateDatabase(); var initialization = new DataInitialization(manager); initialization.CreateInitialData(); // Loading game configuration using (var context = manager.CreateNewConfigurationContext()) { var gameConfiguraton = context.Get <GameConfiguration>().FirstOrDefault(); Assert.That(gameConfiguraton, Is.Not.Null); // Testing loading of an account using (var accountContext = manager.CreateNewPlayerContext(gameConfiguraton)) { var account1 = accountContext.GetAccountByLoginName("test1", "test1"); Assert.That(account1, Is.Not.Null); Assert.That(account1.LoginName, Is.EqualTo("test1")); } } }
/// <summary> /// Initializes a new instance of the <see cref="Program"/> class. /// Constructor for the main entry program. /// </summary> /// <param name="args">The command line args.</param> public Program(string[] args) { if (args.Contains("-demo")) { this.persistenceContextProvider = new InMemoryPersistenceContextProvider(); var initialization = new DataInitialization(this.persistenceContextProvider); initialization.CreateInitialData(); } else { this.persistenceContextProvider = this.PrepareRepositoryManager(args.Contains("-reinit")); } Log.Info("Start initializing sub-components"); var signalRServerObserver = new SignalRGameServerStateObserver(); var persistenceContext = this.persistenceContextProvider.CreateNewConfigurationContext(); var loginServer = new LoginServer(); var chatServer = new ChatServerListener(55980, signalRServerObserver); this.servers.Add(chatServer); var guildServer = new GuildServer(this.gameServers, this.persistenceContextProvider); var friendServer = new FriendServer(this.gameServers, chatServer, this.persistenceContextProvider); var connectServer = ConnectServerFactory.CreateConnectServer(signalRServerObserver); this.servers.Add(connectServer); Log.Info("Start initializing game servers"); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); foreach (var gameServerDefinition in persistenceContext.Get <DataModel.Configuration.GameServerDefinition>()) { using (ThreadContext.Stacks["gameserver"].Push(gameServerDefinition.ServerID.ToString())) { var gameServer = new GameServer(gameServerDefinition, guildServer, loginServer, this.persistenceContextProvider, friendServer, signalRServerObserver); foreach (var mainPacketHandler in gameServer.Context.PacketHandlers.Take(1)) { // At the moment only one main packet handler should be used. // A TCP port can only be used for one TCP listener, so we have to introduce something to pair ports with main packets handlers. gameServer.AddListener(new DefaultTcpGameServerListener(gameServerDefinition.NetworkPort, gameServer.ServerInfo, gameServer.Context, connectServer, mainPacketHandler)); } this.servers.Add(gameServer); this.gameServers.Add(gameServer.Id, gameServer); Log.InfoFormat("Game Server {0} - [{1}] initialized", gameServer.Id, gameServer.Description); } } stopwatch.Stop(); Log.Info($"All game servers initialized, elapsed time: {stopwatch.Elapsed}"); Log.Info("Start initializing admin panel"); this.adminPanel = new AdminPanel(1234, this.servers, this.persistenceContextProvider); Log.Info("Admin panel initialized"); if (args.Contains("-autostart")) { chatServer.Start(); foreach (var gameServer in this.gameServers.Values) { gameServer.Start(); } connectServer.Start(); } }
/// <summary> /// Initializes a new instance of the <see cref="Program"/> class. /// Constructor for the main entry program. /// </summary> /// <param name="args">The command line args.</param> public Program(string[] args) { if (args.Contains("-demo")) { this.persistenceContextProvider = new InMemoryPersistenceContextProvider(); var initialization = new DataInitialization(this.persistenceContextProvider); initialization.CreateInitialData(); } else { this.persistenceContextProvider = this.PrepareRepositoryManager(args.Contains("-reinit")); } var ipResolver = args.Contains("-local") ? (IIpAddressResolver) new LocalIpResolver() : new PublicIpResolver(); Log.Info("Start initializing sub-components"); var signalRServerObserver = new SignalRGameServerStateObserver(); var persistenceContext = this.persistenceContextProvider.CreateNewConfigurationContext(); var loginServer = new LoginServer(); var chatServer = new ChatServerListener(55980, signalRServerObserver, ipResolver); this.servers.Add(chatServer); var guildServer = new GuildServer(this.gameServers, this.persistenceContextProvider); var friendServer = new FriendServer(this.gameServers, chatServer, this.persistenceContextProvider); var connectServers = new Dictionary <GameClientDefinition, IConnectServer>(); ClientVersionResolver.DefaultVersion = new ClientVersion(6, 3, ClientLanguage.English); foreach (var gameClientDefinition in persistenceContext.Get <GameClientDefinition>()) { ClientVersionResolver.Register(gameClientDefinition.Version, new ClientVersion(gameClientDefinition.Season, gameClientDefinition.Episode, gameClientDefinition.Language)); } foreach (var connectServerDefinition in persistenceContext.Get <ConnectServerDefinition>()) { var connectServer = ConnectServerFactory.CreateConnectServer(connectServerDefinition, signalRServerObserver); this.servers.Add(connectServer); connectServers[connectServerDefinition.Client] = connectServer; } Log.Info("Start initializing game servers"); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); foreach (var gameServerDefinition in persistenceContext.Get <DataModel.Configuration.GameServerDefinition>()) { using (ThreadContext.Stacks["gameserver"].Push(gameServerDefinition.ServerID.ToString())) { var gameServer = new GameServer(gameServerDefinition, guildServer, loginServer, this.persistenceContextProvider, friendServer, signalRServerObserver); foreach (var endpoint in gameServerDefinition.Endpoints) { gameServer.AddListener(new DefaultTcpGameServerListener(endpoint, gameServer.ServerInfo, gameServer.Context, connectServers[endpoint.Client], ipResolver)); } this.servers.Add(gameServer); this.gameServers.Add(gameServer.Id, gameServer); Log.InfoFormat("Game Server {0} - [{1}] initialized", gameServer.Id, gameServer.Description); } } stopwatch.Stop(); Log.Info($"All game servers initialized, elapsed time: {stopwatch.Elapsed}"); Log.Info("Start initializing admin panel"); this.adminPanel = new AdminPanel(1234, this.servers, this.persistenceContextProvider, Log4NetConfigFilePath); Log.Info("Admin panel initialized"); if (args.Contains("-autostart")) { chatServer.Start(); foreach (var gameServer in this.gameServers.Values) { gameServer.Start(); } foreach (var connectServer in connectServers.Values) { connectServer.Start(); } } }
/// <summary> /// Initializes a new instance of the <see cref="Program"/> class. /// Constructor for the main entry program. /// </summary> /// <param name="args">The command line args.</param> public Program(string[] args) { if (args.Contains("-demo")) { this.persistenceContextProvider = new InMemoryPersistenceContextProvider(); var initialization = new DataInitialization(this.persistenceContextProvider); initialization.CreateInitialData(); } else { this.persistenceContextProvider = this.PrepareRepositoryManager(args.Contains("-reinit"), args.Contains("-autoupdate")); } var ipResolver = IpAddressResolverFactory.DetermineIpResolver(args); Log.Info("Start initializing sub-components"); var signalRServerObserver = new SignalRGameServerStateObserver(); var serverConfigListener = new ServerConfigurationChangeListener(this.servers, signalRServerObserver); var persistenceContext = this.persistenceContextProvider.CreateNewConfigurationContext(); var loginServer = new LoginServer(); var chatServerDefinition = persistenceContext.Get <ChatServerDefinition>().First(); var chatServer = new ChatServer(chatServerDefinition.ConvertToSettings(), signalRServerObserver, ipResolver); this.servers.Add(chatServer); var guildServer = new GuildServer(this.gameServers, this.persistenceContextProvider); var friendServer = new FriendServer(this.gameServers, chatServer, this.persistenceContextProvider); var connectServers = new Dictionary <GameClientDefinition, IGameServerStateObserver>(); ClientVersionResolver.DefaultVersion = new ClientVersion(6, 3, ClientLanguage.English); foreach (var gameClientDefinition in persistenceContext.Get <GameClientDefinition>()) { ClientVersionResolver.Register(gameClientDefinition.Version, new ClientVersion(gameClientDefinition.Season, gameClientDefinition.Episode, gameClientDefinition.Language)); } foreach (var connectServerDefinition in persistenceContext.Get <ConnectServerDefinition>()) { var clientVersion = new ClientVersion(connectServerDefinition.Client.Season, connectServerDefinition.Client.Episode, connectServerDefinition.Client.Language); var connectServer = ConnectServerFactory.CreateConnectServer(connectServerDefinition, signalRServerObserver, clientVersion); this.servers.Add(connectServer); if (!connectServers.TryGetValue(connectServerDefinition.Client, out var observer)) { connectServers[connectServerDefinition.Client] = connectServer; } else { Log.WarnFormat($"Multiple connect servers for game client '{connectServerDefinition.Client.Description}' configured. Only one per client makes sense."); if (!(observer is MulticastConnectionServerStateObserver)) { var multicastObserver = new MulticastConnectionServerStateObserver(); multicastObserver.AddObserver(observer); multicastObserver.AddObserver(connectServer); connectServers[connectServerDefinition.Client] = multicastObserver; } } } Log.Info("Start initializing game servers"); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); foreach (var gameServerDefinition in persistenceContext.Get <DataModel.Configuration.GameServerDefinition>()) { using (ThreadContext.Stacks["gameserver"].Push(gameServerDefinition.ServerID.ToString())) { var gameServer = new GameServer(gameServerDefinition, guildServer, loginServer, this.persistenceContextProvider, friendServer, signalRServerObserver); foreach (var endpoint in gameServerDefinition.Endpoints) { gameServer.AddListener(new DefaultTcpGameServerListener(endpoint, gameServer.ServerInfo, gameServer.Context, connectServers[endpoint.Client], ipResolver)); } this.servers.Add(gameServer); this.gameServers.Add(gameServer.Id, gameServer); Log.InfoFormat("Game Server {0} - [{1}] initialized", gameServer.Id, gameServer.Description); } } stopwatch.Stop(); Log.Info($"All game servers initialized, elapsed time: {stopwatch.Elapsed}"); var adminPort = this.DetermineAdminPort(args); Log.Info($"Start initializing admin panel for port {adminPort}."); this.adminPanel = new AdminPanel(adminPort, this.servers, this.persistenceContextProvider, serverConfigListener, Log4NetConfigFilePath); Log.Info($"Admin panel initialized, port {adminPort}."); if (args.Contains("-autostart")) { chatServer.Start(); foreach (var gameServer in this.gameServers.Values) { gameServer.Start(); } foreach (var connectServer in this.servers.OfType <IConnectServer>()) { connectServer.Start(); } } }