// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { // Allow plugin manager to configure options for all plugins PluginManagerService.Configure(app, env); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseSession(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Account}/{action=Index}/{id?}"); }); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Allow plugin manager to configure all services in each plugin PluginManagerService.ConfigureServices(services); SessionHelper.InitSessionHelper(); services.Configure <CookiePolicyOptions>(options => { options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddDistributedMemoryCache(); services.AddSession(options => { // Set a short timeout for easy testing. //options.IdleTimeout = TimeSpan.FromSeconds(10); //options.Cookie.HttpOnly = false; }); services.AddLogging(); services.AddMvc( option => option.EnableEndpointRouting = false ).ConfigurePluginManager().AddRazorRuntimeCompilation(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Allow plugin manager to configure all services in each plugin PluginManagerService.ConfigureServices(services); services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddDistributedMemoryCache(); services.AddSession(options => { // Set a short timeout for easy testing. options.IdleTimeout = TimeSpan.FromSeconds(10); options.Cookie.HttpOnly = false; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1) .ConfigurePluginManager(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Allow plugin manager to configure all services in each plugin PluginManagerService.ConfigureServices(services); //services.Configure<CookiePolicyOptions>(options => //{ // // This lambda determines whether user consent for non-essential cookies is needed for a given request. // options.CheckConsentNeeded = context => true; // options.MinimumSameSitePolicy = SameSiteMode.None; //}); services.AddDistributedMemoryCache(); //services.AddSession(options => //{ // // Set a short timeout for easy testing. // options.IdleTimeout = TimeSpan.FromSeconds(10); // options.Cookie.HttpOnly = false; //}); services.AddMvc( #if NET_CORE_3_0 option => option.EnableEndpointRouting = false #endif ) .ConfigurePluginManager(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { PluginManagerService.ConfigureServices(services); services.AddMvc() .AddSessionStateTempDataProvider() .ConfigurePluginManager(); }
public void InitialiseWithCustomILogger() { TestLogger testLogger = new TestLogger(); PluginManagerConfiguration configuration = new PluginManagerConfiguration(testLogger); PluginManagerService.Initialise(configuration); ILogger pluginManagerLogger = PluginManagerService.GetLogger(); Assert.AreNotEqual(pluginManagerLogger.GetType().TypeHandle.Value, testLogger.GetType().TypeHandle.Value); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Allow plugin manager to configure all services in each plugin PluginManagerService.ConfigureServices(services); services.AddMvc( #if NET_CORE_3_0 option => option.EnableEndpointRouting = false #endif ) .ConfigurePluginManager(); }
public override string Data() { Dictionary <string, IPluginModule> plugins = PluginManagerService.GetPluginManager().GetLoadedPlugins(); string Result = "Module|Plugin Version|FileVersion"; foreach (KeyValuePair <string, IPluginModule> keyValuePair in plugins) { Result += $"\r{keyValuePair.Value.Module}|{keyValuePair.Value.Version.ToString()}|" + $"{keyValuePair.Value.FileVersion}"; } return(Result); }
public override string Data() { Dictionary <string, IPluginModule> plugins = PluginManagerService.GetPluginManager().GetLoadedPlugins(); string Result = "Module|FileVersion"; Dictionary <string, string> files = new Dictionary <string, string>(); foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) { string fileVersion = String.Empty; string file = String.Empty; try { string path = String.IsNullOrEmpty(assembly.Location) ? assembly.CodeBase : assembly.Location; if (path.StartsWith("file:///")) { path = path.Substring(8); } file = Path.GetFullPath(path); if (File.Exists(file)) { fileVersion = System.Diagnostics.FileVersionInfo.GetVersionInfo(file).FileVersion; } file = Path.GetFileName(file); } catch (NotSupportedException) { } if (!files.ContainsKey(file)) { files.Add(file, fileVersion); } } foreach (KeyValuePair <string, string> valuePair in files.OrderBy(key => key.Value.ToLower())) { Result += $"\r{valuePair.Key}|{valuePair.Value}"; } return(Result); }
public static void Main(string[] args) { // add plugins which need to be loaded first PluginManagerService.UsePlugin(typeof(ErrorManager.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(BadEgg.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(RestrictIp.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(UserSessionMiddleware.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(CacheControl.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(MemoryCache.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(Spider.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(SeoPlugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(Localization.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(Breadcrumb.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(WebSmokeTest.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(GeoIp.Plugin.PluginInitialisation)); PluginManagerConfiguration configuration = new PluginManagerConfiguration(); configuration.ServiceConfigurator = new ServiceConfigurator(); // Initialise the plugin manager service PluginManagerService.Initialise(configuration); try { // Add generic plugins where load order does not matter PluginManagerService.UsePlugin(typeof(DocumentationPlugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(ProductPlugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(ShoppingCartPlugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(HelpdeskPlugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(UserAccount.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(LoginPlugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(Sitemap.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(SystemAdmin.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(DownloadPlugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(Company.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(Blog.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(DemoWebsitePlugin.Plugin.PluginInitialisation)); PluginManagerService.UsePlugin(typeof(DemoApiPlugin.PluginInitialisation)); CreateWebHostBuilder(args).Build().Run(); } finally { PluginManagerService.Finalise(); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { // Allow plugin manager to configure options for all plugins PluginManagerService.Configure(app); app.UseStaticFiles(); app.UseHsts(); app.UseHttpsRedirection(); app.UseCookiePolicy(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }).UsePluginManager(); }
public static Location LoadOrCreate(string locationName, string overlayFile, string databaseDirectory, string pluginDirectory, out IMasterDatabaseService databaseService, out EnvironmentalCacheService cacheService, out PluginManagerService pluginService) { Console.WriteLine("Creating database service..."); databaseService = new MasterDatabaseService {MasterDatabaseDirectory = databaseDirectory}; Console.WriteLine("Loading plugins..."); pluginService = new PluginManagerService {PluginDirectory = pluginDirectory}; cacheService = new EnvironmentalCacheService(pluginService, databaseService); Console.WriteLine(string.Format("Looking for test location '{0}'...", locationName)); var location = databaseService.FindLocation(locationName); if (location != null) { Console.WriteLine(string.Format("Test location '{0}' already exists. Deleting the existing location.", locationName)); databaseService.DeleteLocation(location); } Console.WriteLine(string.Format("Creating test location '{0}'...", locationName)); location = databaseService.ImportLocationFromOverlayFile(overlayFile, locationName); foreach (var month in NAVOConfiguration.AllMonths) { // SoundSpeed dataset for each month Console.WriteLine(string.Format("Importing soundspeed for {0}", month)); cacheService.ImportDatasetTest(databaseService.LoadOrCreateEnvironmentalDataSet(location, 15, month, pluginService[PluginType.EnvironmentalDataSource, PluginSubtype.SoundSpeed].PluginIdentifier)); // Wind dataset for each month Console.WriteLine(string.Format("Importing wind for {0}", month)); cacheService.ImportDatasetTest(databaseService.LoadOrCreateEnvironmentalDataSet(location, 60, month, pluginService[PluginType.EnvironmentalDataSource, PluginSubtype.Wind].PluginIdentifier)); } // Sediment dataset Console.WriteLine("Importing sediment"); cacheService.ImportDatasetTest(databaseService.LoadOrCreateEnvironmentalDataSet(location, 5f, TimePeriod.Invalid, pluginService[PluginType.EnvironmentalDataSource, PluginSubtype.Sediment].PluginIdentifier)); // Bathymetry dataset at 2min resolution Console.WriteLine("Importing 2min bathymetry"); cacheService.ImportDatasetTest(databaseService.LoadOrCreateEnvironmentalDataSet(location, 2f, TimePeriod.Invalid, pluginService[PluginType.EnvironmentalDataSource, PluginSubtype.Bathymetry].PluginIdentifier)); // Bathymetry dataset at 1min resolution Console.WriteLine("Importing 1min bathymetry"); cacheService.ImportDatasetTest(databaseService.LoadOrCreateEnvironmentalDataSet(location, 1f, TimePeriod.Invalid, pluginService[PluginType.EnvironmentalDataSource, PluginSubtype.Bathymetry].PluginIdentifier)); // Bathymetry dataset at 0.5min resolution Console.WriteLine("Importing 0.5min bathymetry"); cacheService.ImportDatasetTest(databaseService.LoadOrCreateEnvironmentalDataSet(location, 0.5f, TimePeriod.Invalid, pluginService[PluginType.EnvironmentalDataSource, PluginSubtype.Bathymetry].PluginIdentifier)); return location; }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { PluginManagerService.Configure(app); #if DEBUG app.UseDeveloperExceptionPage(); #else app.UseExceptionHandler("/Home/Error"); #endif #if !NET_CORE_3_X app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Product}/{action=Index}/{id?}"); }) .UsePluginManager(); #endif }
public void PopulateFeature(IEnumerable <ApplicationPart> parts, MetadataReferenceFeature feature) { var libraryPaths = new HashSet <string>(StringComparer.OrdinalIgnoreCase); foreach (var assemblyPart in parts.OfType <AssemblyPart>()) { var dependencyContext = DependencyContext.Load(assemblyPart.Assembly); if (dependencyContext != null) { foreach (var library in dependencyContext.CompileLibraries) { if (string.Equals("reference", library.Type, StringComparison.OrdinalIgnoreCase)) { foreach (var libraryAssembly in library.Assemblies) { libraryPaths.Add(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, libraryAssembly)); } } else { try { foreach (var path in library.ResolveReferencePaths()) { libraryPaths.Add(path); } } catch (InvalidOperationException) { if (PluginManagerService.GetPluginManager().PluginLoaded(library.Name + ".dll", out int version, out string module)) { libraryPaths.Add(module); } else { throw; } } }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Allow plugin manager to configure all services in each plugin PluginManagerService.ConfigureServices(services); SessionHelper.InitSessionHelper(); services.AddAuthentication("DefaultAuthSchemeName") .AddCookie("DefaultAuthSchemeName", options => { options.AccessDeniedPath = "/Error/AccessDenied"; options.LoginPath = "/Login/"; #if NET_CORE_2_2 || NET_CORE_2_1 || NET_CORE_2_0 || NET461 options.SlidingExpiration = true; options.Cookie.Expiration = new TimeSpan(7, 0, 0, 0); #endif }); services.Configure <CookiePolicyOptions>(options => { options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddDistributedMemoryCache(); services.AddSession(options => { // Set a short timeout for easy testing. //options.IdleTimeout = TimeSpan.FromSeconds(10); //options.Cookie.HttpOnly = false; }); services.AddLogging(); services.AddMvc( option => option.EnableEndpointRouting = false ) .ConfigurePluginManager() .AddRazorRuntimeCompilation(); }
public void PluginManager() { const string debugDirectory = @"C:\Projects\ESME Deliverables\Libraries\ESME.Tests\bin\Debug"; const string pluginDirectory = debugDirectory + @"\Plugins"; if (Directory.Exists(pluginDirectory)) Directory.Delete(pluginDirectory, true); Assert.IsFalse(Directory.Exists(pluginDirectory)); Directory.CreateDirectory(pluginDirectory); Assert.IsTrue(Directory.Exists(pluginDirectory)); File.Copy(Path.Combine(debugDirectory, "InstallableNAVOPlugin.dll"), Path.Combine(pluginDirectory, "InstallableNAVOPlugin.dll")); File.Copy(Path.Combine(debugDirectory, "NAVODatabaseAdapter.dll"), Path.Combine(pluginDirectory, "NAVODatabaseAdapter.dll")); var pluginManager = new PluginManagerService(); Assert.IsNull(pluginManager[PluginType.EnvironmentalDataSource]); pluginManager.PluginDirectory = pluginDirectory; Assert.IsNotNull(pluginManager[PluginType.EnvironmentalDataSource]); var pluginIdentifier = new PluginIdentifier { PluginType = PluginType.EnvironmentalDataSource, PluginSubtype = PluginSubtype.SoundSpeed, Type = typeof(GDEM3ForESME).ToString(), }; Assert.IsTrue(pluginManager[pluginIdentifier] is GDEM3ForESME); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Allow plugin manager to configure all services in each plugin PluginManagerService.ConfigureServices(services); SessionHelper.InitSessionHelper(); services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddDistributedMemoryCache(); services.AddSession(options => { // Set a short timeout for easy testing. options.IdleTimeout = TimeSpan.FromSeconds(10); options.Cookie.HttpOnly = false; }); services.AddLogging(); // register internal types so we can load them or DI them into other classes later services.AddSingleton <ISharedPluginHelper, SharedPluginHelper>(); services.AddSingleton <IErrorManager, ErrorManager>(); // grab an instance of the service provider so we can dynamically generate // objects from the service provider GetServiceProvider = services.BuildServiceProvider(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1) .ConfigurePluginManager(); }
public void InitialiseWithoutParametersAndFinalise() { PluginManagerService.Initialise(); PluginManagerService.Finalise(); }
public void CreateScenario(string locationName, string scenarioName, double north, double south, double east, double west) { Console.WriteLine("Creating database service..."); var database = new MasterDatabaseService { MasterDatabaseDirectory = _databaseDirectory }; Console.WriteLine("Loading plugins..."); var plugins = new PluginManagerService { PluginDirectory = PluginDirectory }; var cache = new EnvironmentalCacheService(plugins, database); Console.WriteLine(string.Format("Looking for test location '{0}'...", locationName)); var location = database.FindLocation(locationName); if (location != null) { Console.WriteLine(string.Format("Test location '{0}' already exists. Deleting the existing location.", locationName)); database.DeleteLocation(location); } Console.WriteLine(string.Format("Creating test location '{0}'...", locationName)); var geoRect = new GeoRect(north, south, east, west); location = new Location { Name = locationName, Comments = null, GeoRect = geoRect }; location.LayerSettings.IsChecked = true; database.Add(location); foreach (var month in NAVOConfiguration.AllMonths) { // SoundSpeed dataset for each month Console.WriteLine(string.Format("Importing soundspeed for {0}", month)); cache.ImportDatasetTest(database.LoadOrCreateEnvironmentalDataSet(location, 15, month, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.SoundSpeed].PluginIdentifier)); // Wind dataset for each month Console.WriteLine(string.Format("Importing wind for {0}", month)); cache.ImportDatasetTest(database.LoadOrCreateEnvironmentalDataSet(location, 60, month, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Wind].PluginIdentifier)); } // Sediment dataset Console.WriteLine("Importing 5min sediment"); cache.ImportDatasetTest(database.LoadOrCreateEnvironmentalDataSet(location, 5f, TimePeriod.Invalid, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Sediment].PluginIdentifier)); Console.WriteLine("Importing 0.1min sediment"); cache.ImportDatasetTest(database.LoadOrCreateEnvironmentalDataSet(location, 0.1f, TimePeriod.Invalid, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Sediment].PluginIdentifier)); // Bathymetry dataset at 2min resolution Console.WriteLine("Importing 2min bathymetry"); cache.ImportDatasetTest(database.LoadOrCreateEnvironmentalDataSet(location, 2f, TimePeriod.Invalid, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Bathymetry].PluginIdentifier)); // Bathymetry dataset at 1min resolution Console.WriteLine("Importing 1min bathymetry"); cache.ImportDatasetTest(database.LoadOrCreateEnvironmentalDataSet(location, 1f, TimePeriod.Invalid, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Bathymetry].PluginIdentifier)); // Bathymetry dataset at 0.5min resolution Console.WriteLine("Importing 0.5min bathymetry"); cache.ImportDatasetTest(database.LoadOrCreateEnvironmentalDataSet(location, 0.5f, TimePeriod.Invalid, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Bathymetry].PluginIdentifier)); Scenario scenario; database.Add(scenario = new Scenario { Location = location, Name = scenarioName, Comments = string.Format("Some comments for {0}", scenarioName), StartTime = new DbTimeSpan(new TimeSpan(0, 12, 0, 0)), Duration = new DbTimeSpan(new TimeSpan(0, 1, 0, 0)), TimePeriod = TimePeriod.April, }); location.Scenarios.Add(scenario); Platform platform; database.Add(platform = new Platform { Description = "Platform description", PlatformName = "PlatformName", PlatformType = "PlatformType", RepeatCount = 0, Scenario = scenario, Course = 45, Depth = 0, Geo = geoRect.Center, Speed = 0, IsRandom = false, TrackType = TrackType.Stationary, Perimeter = null, }); Source source; database.Add(source = new Source { Platform = platform, SourceName = "SourceName", SourceType = "SourceType", }); database.Add(new Mode { ActiveTime = 500, DepressionElevationAngle = 0, Depth = 5, HighFrequency = 3000, HorizontalBeamWidth = 360, LowFrequency = 3000, MaxPropagationRadius = 25000, ModeName = "ModeName", ModeType = "ModeType", //PSMModeGuid = PulseInterval = new TimeSpan(0, 0, 0, 30), PulseLength = new TimeSpan(0, 0, 0, 0, 500), RelativeBeamAngle = 0, Source = source, SourceLevel = 200, VerticalBeamWidth = 180, }); database.SetEnvironmentalData(scenario, (from data in location.EnvironmentalDataSets where data.SourcePlugin.PluginSubtype == PluginSubtype.Wind && ((TimePeriod)scenario.TimePeriod == (TimePeriod)data.TimePeriod) select data).FirstOrDefault()); database.SetEnvironmentalData(scenario, (from data in location.EnvironmentalDataSets where data.SourcePlugin.PluginSubtype == PluginSubtype.SoundSpeed && ((TimePeriod)scenario.TimePeriod == (TimePeriod)data.TimePeriod) select data).FirstOrDefault()); database.SetEnvironmentalData(scenario, (from data in location.EnvironmentalDataSets where data.SourcePlugin.PluginSubtype == PluginSubtype.Sediment orderby data.Resolution select data).FirstOrDefault()); database.SetEnvironmentalData(scenario, (from data in location.EnvironmentalDataSets where data.SourcePlugin.PluginSubtype == PluginSubtype.Bathymetry orderby data.Resolution select data).FirstOrDefault()); database.SaveChanges(); }
public void TestInitialise() { PluginManagerService.Initialise(); }
public static void Main(string[] args) { PluginManagerService.Initialise(); CreateWebHostBuilder(args).Build().Run(); }
public void CreateNewSimulation() { Console.WriteLine("Creating database service..."); var database = new MasterDatabaseService { MasterDatabaseDirectory = _databaseDirectory }; Console.WriteLine("Loading plugins..."); var plugins = new PluginManagerService { PluginDirectory = PluginDirectory }; Console.WriteLine("Looking for test location 'Jacksonville'..."); var location = database.FindLocation("Jacksonville"); if (location == null) { Console.WriteLine("Creating test location 'Jacksonville'..."); location = database.ImportLocationFromOverlayFile(@"C:\Users\Dave Anderson\Desktop\NAEMO demos\BU Test Sample\Sim Areas\Jacksonville\Areas\Jax_Ops_Area.ovr", "Jacksonville"); foreach (var month in NAVOConfiguration.AllMonths) { // SoundSpeed dataset for each month database.LoadOrCreateEnvironmentalDataSet(location, 15, month, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.SoundSpeed].PluginIdentifier); // Wind dataset for each month database.LoadOrCreateEnvironmentalDataSet(location, 60, month, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Wind].PluginIdentifier); } // Sediment dataset database.LoadOrCreateEnvironmentalDataSet(location, 5f, TimePeriod.Invalid, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Sediment].PluginIdentifier); // Bathymetry dataset at 2min resolution database.LoadOrCreateEnvironmentalDataSet(location, 2f, TimePeriod.Invalid, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Bathymetry].PluginIdentifier); // Bathymetry dataset at 1min resolution database.LoadOrCreateEnvironmentalDataSet(location, 1f, TimePeriod.Invalid, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Bathymetry].PluginIdentifier); // Bathymetry dataset at 0.5min resolution database.LoadOrCreateEnvironmentalDataSet(location, 0.5f, TimePeriod.Invalid, plugins[PluginType.EnvironmentalDataSource, PluginSubtype.Bathymetry].PluginIdentifier); } Console.WriteLine("Looking for test scenario 'BU Test Sample'..."); var scenario = database.FindScenario("BU Test Sample"); if (scenario == null) { Console.WriteLine("Importing test scenario 'BU Test Sample'..."); scenario = Scenario.FromNemoFile(database, location, @"C:\Users\Dave Anderson\Desktop\NAEMO demos\BU Test Sample\Jacksonville\BU Test Sample.nemo", @"C:\Users\Dave Anderson\Desktop\NAEMO demos\BU Test Sample\Sim Areas"); database.SetEnvironmentalData(scenario, (from data in location.EnvironmentalDataSets where data.SourcePlugin.PluginSubtype == PluginSubtype.Wind select data).FirstOrDefault()); var sourceFile = Path.Combine(database.MasterDatabaseDirectory, location.StorageDirectory, scenario.Wind.FileName); var destFile = Path.Combine(_databaseDirectory, scenario.Wind.FileName); if (File.Exists(sourceFile)) File.Copy(sourceFile, destFile); database.SetEnvironmentalData(scenario, (from data in location.EnvironmentalDataSets where data.SourcePlugin.PluginSubtype == PluginSubtype.SoundSpeed select data).FirstOrDefault()); sourceFile = Path.Combine(database.MasterDatabaseDirectory, location.StorageDirectory, scenario.SoundSpeed.FileName); destFile = Path.Combine(_databaseDirectory, scenario.SoundSpeed.FileName); if (File.Exists(sourceFile)) File.Copy(sourceFile, destFile); database.SetEnvironmentalData(scenario, (from data in location.EnvironmentalDataSets where data.SourcePlugin.PluginSubtype == PluginSubtype.Sediment select data).FirstOrDefault()); sourceFile = Path.Combine(database.MasterDatabaseDirectory, location.StorageDirectory, scenario.Sediment.FileName); destFile = Path.Combine(_databaseDirectory, scenario.Sediment.FileName); if (File.Exists(sourceFile)) File.Copy(sourceFile, destFile); database.SetEnvironmentalData(scenario, (from data in location.EnvironmentalDataSets where data.SourcePlugin.PluginSubtype == PluginSubtype.Bathymetry select data).FirstOrDefault()); sourceFile = Path.Combine(database.MasterDatabaseDirectory, location.StorageDirectory, scenario.Bathymetry.FileName); destFile = Path.Combine(_databaseDirectory, scenario.Bathymetry.FileName); if (File.Exists(sourceFile)) File.Copy(sourceFile, destFile); } Console.WriteLine("Deleting existing simulation directory..."); if (Directory.Exists(_simulationDirectory)) Directory.Delete(_simulationDirectory, true); for (var i = 0; i < 10; i++) if (Directory.Exists(_simulationDirectory)) Thread.Sleep(100); else break; Assert.IsFalse(Directory.Exists(_simulationDirectory)); Console.WriteLine("Creating simulation..."); var simulation = Simulation.Create(scenario, _simulationDirectory); Console.WriteLine("Starting simulation..."); simulation.Start(1000, new TimeSpan(0, 0, 0, 1)); Console.WriteLine("Test complete"); }
public PluginManagerController(PluginManagerService pluginManagerService) { this.pluginManagerService = pluginManagerService; }
public void InitialiseWithDefaultParameters() { PluginManagerService.Initialise(new PluginManagerConfiguration()); }
public void InitialiseWithNullParametersRaiseException() { PluginManagerService.Initialise(null); }
public void ConfigureServicesInvalidParam() { PluginManagerService.ConfigureServices(null); }
public void FinaliseWithoutInitialiseFailWithException() { PluginManagerService.Finalise(); }