static void StartServer() { var connectionString = ConfigurationManager.ConnectionStrings["postgres"].ConnectionString; //if (!File.Exists (@"database.sqlite")) { logger.Info("Updating the database"); //SqliteConnection.CreateFile(@"database.sqlite"); MigrateToLatest(connectionString); logger.Info("Database migrated"); //} // var provider = new MonoSQLiteDatabaseProvider (); var provider = new PostgreSQLDatabaseProvider(); var config = DatabaseConfiguration.Build() .UsingConnectionString(connectionString) .UsingProvider(provider) .UsingDefaultMapper <ConventionMapper>(); // connection.Open(); //logger.Info (db.ExecuteScalar<int>("select count(*) from ambulances where ambulances.ambulanceId = 'A9';")); //var ambulanceRepository = new AmbulanceRepository(db); //var hospitalRepository = new HospitalRepository(db); //var incidentRepository = new IncidentRepository(db); var orchestrator = new Orchestrator(config); orchestrator.Start(); }
public ApiController() { var provider = new PostgreSQLDatabaseProvider(); var connectionString = ConfigurationManager.ConnectionStrings["postgres"].ConnectionString; var config = DatabaseConfiguration.Build() .UsingConnectionString(connectionString) .UsingProvider(provider) .UsingDefaultMapper <ConventionMapper>(); var db = new Database(config); ambulanceRepository = new AmbulanceRepository(db); hospitalRepository = new HospitalRepository(db); incidentRepository = new IncidentRepository(db); allocationRepository = new AllocationRepository(db); }
public HomeController() { // var provider = new MonoSQLiteDatabaseProvider(); var provider = new PostgreSQLDatabaseProvider(); var connectionString = ConfigurationManager.ConnectionStrings["postgres"].ConnectionString; var config = DatabaseConfiguration.Build() .UsingConnectionString(connectionString) .UsingProvider(provider) .UsingDefaultMapper <ConventionMapper>(); var db = new Database(config); // connection.Open(); //logger.Info (db.ExecuteScalar<int>("select count(*) from ambulances where ambulances.ambulanceId = 'A9';")); ambulanceRepository = new AmbulanceRepository(db); hospitalRepository = new HospitalRepository(db); incidentRepository = new IncidentRepository(db); allocationRepository = new AllocationRepository(db); }
public static void Main(string[] args) { logger.Info("Starting simulator"); var connectionString = ConfigurationManager.ConnectionStrings["postgres"].ConnectionString; var provider = new PostgreSQLDatabaseProvider(); var config = DatabaseConfiguration.Build() .UsingConnectionString(connectionString) .UsingProvider(provider) .UsingDefaultMapper <ConventionMapper>(); var incSimulator = new IncidentSimulator(new Database(config)); var mapService = new MapService(); var hospitals = new Dictionary <string, Coordinate>(); hospitals.Add("HOP1", new Coordinate(50.834957f, 4.348430f)); hospitals.Add("HOP2", new Coordinate(50.814250f, 4.357530f)); hospitals.Add("HOP3", new Coordinate(50.853853f, 4.360663f)); hospitals.Add("HOP4", new Coordinate(50.852575f, 4.452851f)); hospitals.Add("HOP5", new Coordinate(50.845607f, 4.317075f)); hospitals.Add("HOP6", new Coordinate(50.804648f, 4.367769f)); hospitals.Add("HOP7", new Coordinate(50.825022f, 4.379507f)); hospitals.Add("HOP8", new Coordinate(50.813997f, 4.259632f)); //hospitals.Add ("HOP8", new Coordinate(50.8128775f, 4.2649523f)); hospitals.Add("HOP9", new Coordinate(50.905819f, 4.390159f)); hospitals.Add("HOP10", new Coordinate(50.8885403f, 4.3288842f)); hospitals.Add("HOP11", new Coordinate(50.833261f, 4.347095f)); hospitals.Add("HOP12", new Coordinate(50.8872628f, 4.3089256f)); hospitals.Add("HOP13", new Coordinate(50.842471f, 4.399073f)); var pasiDelta = new SimulatedStation("pasiDelta", "PASI Delta", new Coordinate(50.818754f, 4.402740f), "pasiDelta_printer"); var hopIxelles = new SimulatedStation("hopIxelles", "Hopital d'Ixelles", new Coordinate(50.824938f, 4.379172f), "hopIxelles_printer"); var pasiAnderlecht = new SimulatedStation("pasiAnderlecht", "PASI Anderlecht", new Coordinate(50.832740f, 4.311812f), "pasiAnderlecht_printer"); var pasiEvere = new SimulatedStation("pasiEvere", "PASI Evere", new Coordinate(50.870964f, 4.417631f), "pasiEvere_printer"); var pasiVUB = new SimulatedStation("pasiVUB", "PASI VUB", new Coordinate(50.890831f, 4.308449f), "pasiVUB_printer"); var pasiChenaie = new SimulatedStation("pasiChenaie", "PASI Chenaie", new Coordinate(50.783341f, 4.356218f), "pasiChenaie_printer"); var pasiCite = new SimulatedStation("pasiCite", "PASI Cité", new Coordinate(50.849709f, 4.361116f), "pasiCite_printer"); var pasiUCL = new SimulatedStation("pasiUCL", "PASI UCL", new Coordinate(50.851937f, 4.460279f), "pasiUCL_printer"); var heliport = new SimulatedStation("heliport", "Caserne de l'Héliport", new Coordinate(50.859485f, 4.351848f), "heliport_printer"); var moliere = new SimulatedStation("moliere", "Hopital Molière", new Coordinate(50.815206f, 4.342141f), "moliere_printer"); var saintpierre = new SimulatedStation("saintpierre", "Hopital Saint-Pierre", new Coordinate(50.835228f, 4.348342f), "saintpierre_printer"); logger.Info("Adding ambulances"); var a01 = new SimulatedAmbulance("A1", mapService, hospitals, pasiAnderlecht); var a02 = new SimulatedAmbulance("A2", mapService, hospitals, pasiDelta); var a03 = new SimulatedAmbulance("A3", mapService, hospitals, pasiVUB); var a04 = new SimulatedAmbulance("A4", mapService, hospitals, pasiCite); var a05 = new SimulatedAmbulance("A5", mapService, hospitals, pasiVUB); var a06 = new SimulatedAmbulance("A6", mapService, hospitals, heliport); var a07 = new SimulatedAmbulance("A7", mapService, hospitals, heliport); var a08 = new SimulatedAmbulance("A8", mapService, hospitals, heliport); var a09 = new SimulatedAmbulance("A9", mapService, hospitals, hopIxelles); var a10 = new SimulatedAmbulance("A10", mapService, hospitals, pasiUCL); var a11 = new SimulatedAmbulance("A11", mapService, hospitals, pasiUCL); var a12 = new SimulatedAmbulance("A12", mapService, hospitals, pasiCite); var a13 = new SimulatedAmbulance("A13", mapService, hospitals, moliere); var a14 = new SimulatedAmbulance("A14", mapService, hospitals, pasiVUB); var a15 = new SimulatedAmbulance("A15", mapService, hospitals, pasiDelta); //var a16 = new SimulatedAmbulance("A16", mapService, hospitals, saintpierre); //var a17 = new SimulatedAmbulance("A17", mapService, hospitals, heliport); //var a18 = new SimulatedAmbulance("A18", mapService, hospitals, pasiChenaie); //var a19 = new SimulatedAmbulance("A19", mapService, hospitals, pasiChenaie); //var a20 = new SimulatedAmbulance("A20", mapService, hospitals, saintpierre); //var a21 = new SimulatedAmbulance("A21", mapService, hospitals, saintpierre); //var a22 = new SimulatedAmbulance("A22", mapService, hospitals, pasiEvere); //var a23 = new SimulatedAmbulance("A23", mapService, hospitals, pasiEvere); //var a24 = new SimulatedAmbulance("A24", mapService, hospitals, pasiEvere); //var a25 = new SimulatedAmbulance("A25", mapService, hospitals, pasiCite); //var a26 = new SimulatedAmbulance("A26", mapService, hospitals, pasiCite); logger.Info("Ambulances added"); Thread.Sleep(TimeSpan.FromSeconds(5)); incSimulator.Start(); }
public static void Main(string[] args) { //DeployAmbulanceAtStationAllocator(); //Thread.Sleep(TimeSpan.FromSeconds(10)); Console.WriteLine("Hello World!"); var monitoringDelay = TimeSpan.FromSeconds(1); logger.Info("Connecting to database"); var provider = new PostgreSQLDatabaseProvider(); var connectionString = ConfigurationManager.ConnectionStrings["postgres"].ConnectionString; var config = DatabaseConfiguration.Build() .UsingConnectionString(connectionString) .UsingProvider(provider) .UsingDefaultMapper <ConventionMapper>(); db = new Database(config); incidentRepository = new IncidentRepository(db); ambulanceRepository = new AmbulanceRepository(db); allocationRepository = new AllocationRepository(db); hospitalRepository = new HospitalRepository(db); configurationRepository = new ConfigurationRepository(db); logger.Info("Connected to database"); logger.Info("Building KAOS model."); var filename = "./Models/simple.kaos"; var parser = new KAOSTools.Parsing.ModelBuilder(); model = parser.Parse(File.ReadAllText(filename), filename); var model2 = parser.Parse(File.ReadAllText(filename), filename); ActiveResolutions = Enumerable.Empty <Resolution>(); var declarations = parser.Declarations; logger.Info("(done)"); logger.Info("Configuring monitors."); // Configure all the monitors (for all obstacles and domain properties). KAOSMetaModelElement[] goals = model.Goals().ToArray(); KAOSMetaModelElement[] obstacles = model.LeafObstacles().ToArray(); var projection = new HashSet <string>(GetAllPredicates(goals)); monitor = new GoalMonitor(model, goals.Union(obstacles), projection, HandleFunc, // new TimedStateInformationStorage(TimeSpan.FromMinutes(60), TimeSpan.FromMinutes(120)), monitoringDelay); logger.Info("(done)"); foreach (var p in model.Predicates()) { Console.WriteLine(p.FriendlyName); } // What goals and obstacles should appear in LOG cpsGoals = model.Goals(x => x.CustomData.ContainsKey("log_cps")); cpsObstacles = model.Obstacles(x => x.CustomData.ContainsKey("log_cps")); // Initialize obstruction sets obstructionLock = new object(); ComputeObstructionSets(); Console.WriteLine("Waiting ..."); Console.ReadKey(); logger.Info("Launching monitors"); monitor.Run(false); var goalMonitorProcessor = new GoalMonitorProcessor(monitor); csvExport = new CSVGoalExportProcessor("experiment-goal.csv", "experiment-obstacle.csv"); // goalMonitorProcessor.AddProcessor(csvExport, monitoringDelay); new Timer((state) => UpdateCPS(), null, monitoringDelay, monitoringDelay); new Timer((state) => MonitorStep(), null, monitoringDelay, monitoringDelay); Thread.Sleep(TimeSpan.FromSeconds(5)); logger.Info("Launching processors"); //new Timer((state) => LogStatistic(), null, monitoringDelay, monitoringDelay); new Timer((state) => LogCSV(), null, monitoringDelay, monitoringDelay); // Configure optimization process. optimizer = new Optimizer(monitor, model2); new Timer((state) => Optimize(), null, TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(60)); while (true) { ; } }