/// <summary> /// Initializes a new instance of the <see cref="LicenseKeyForm"/> class. /// </summary> /// <param name="processorSettings">Gateway processor config provider.</param> public LicenseKeyForm(GatewayProcessorConfigProvider gatewayProcessorConfigProvider) { _gatewayProcessorConfigProvider = gatewayProcessorConfigProvider; InitializeComponent(); Application.EnableVisualStyles(); }
public void TestLoadGatewayProcessorConfig() { var configurationDirectory = CreateTemporaryDirectory().FullName; var random = new Random(); var expectedGatewayProcessorConfig = RandomGatewayProcessorConfig(random); Serialise(expectedGatewayProcessorConfig, configurationDirectory, GatewayProcessorConfigProvider.GatewayProcessorConfigFileName); var gatewayProcessorConfigProvider = new GatewayProcessorConfigProvider(_baseTestLogger, configurationDirectory); var actualGatewayProcessorConfig = gatewayProcessorConfigProvider.GatewayProcessorConfig(); Assert.AreEqual(expectedGatewayProcessorConfig, actualGatewayProcessorConfig); }
/// <summary> /// Initializes a new instance of the <see cref="BaseTestClass"/> class. /// </summary> public BaseTestClass() { ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; _loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()); _baseTestLogger = _loggerFactory.CreateLogger("BaseTest"); // Set a logger for fo-dicom network operations so that they show up in VS output when debugging Dicom.Log.LogManager.SetImplementation(new Dicom.Log.TextWriterLogManager(new DataProviderTests.DebugTextWriter())); _testAETConfigProvider = new AETConfigProvider(_loggerFactory.CreateLogger("ModelSettings"), _basePathConfigs); TestGatewayProcessorConfigProvider = new GatewayProcessorConfigProvider(_loggerFactory.CreateLogger("ProcessorSettings"), _basePathConfigs); _testGatewayReceiveConfigProvider = new GatewayReceiveConfigProvider(_loggerFactory.CreateLogger("ProcessorSettings"), _basePathConfigs); }
public static ActionResult ValidateProductKey(Session session) { #if DEBUG Debugger.Launch(); #endif // Make sure that the applications are run as services. using (var gatewayProcessorConfigProvider = new GatewayProcessorConfigProvider(null, ConfigInstallDirectory)) { gatewayProcessorConfigProvider.SetRunAsConsole(false); using (var gatewayReceiveConfigProvider = new GatewayReceiveConfigProvider( null, ConfigInstallDirectory)) { gatewayReceiveConfigProvider.SetRunAsConsole(false); } // Check if the installer is running unattended - lets skip the UI if true if (session.CustomActionData[UILevelCustomActionKey] == "2") { return(ActionResult.Success); } // In the context of the installer, this may have a different SecurityProtocol to the application. // In testing it was: SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls // but it may vary. In order to value the uri and license key, we need TLS 1.2 ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12; // First time install so lets display a form to grab the license key. using (var form = new LicenseKeyForm(gatewayProcessorConfigProvider)) { var licenseKeyDialogResult = form.ShowDialog(); switch (licenseKeyDialogResult) { case DialogResult.Cancel: return(ActionResult.UserExit); case DialogResult.No: return(ActionResult.NotExecuted); default: return(ActionResult.Success); } } } }
/// <summary> /// The main entry point for the application. /// </summary> public static void Main() { // Create the loggerFactory as Console + Log4Net. using (var loggerFactory = LoggerFactory.Create(builder => { builder.AddConsole(); builder.SetMinimumLevel(LogLevel.Trace); builder.AddLog4Net(); })) { var relativePaths = new[] { "../Config", "../../../../../SampleConfigurations" }; var configurationsPathRoot = ConfigurationService.FindRelativeDirectory(relativePaths, loggerFactory.CreateLogger("Main")); using (var aetConfigurationProvider = new AETConfigProvider( loggerFactory.CreateLogger("ModelSettings"), configurationsPathRoot)) using (var gatewayProcessorConfigProvider = new GatewayProcessorConfigProvider( loggerFactory.CreateLogger("ProcessorSettings"), configurationsPathRoot)) { var segmentationClientLogger = loggerFactory.CreateLogger("SegmentationClient"); // The ProjectInstaller.cs uses the service name to install the service. // If you change it please update the ProjectInstaller.cs ServiceHelpers.RunServices( ServiceName, gatewayProcessorConfigProvider.ServiceSettings(), new ConfigurationService( gatewayProcessorConfigProvider.CreateInnerEyeSegmentationClient(segmentationClientLogger), gatewayProcessorConfigProvider.ConfigurationServiceConfig, loggerFactory.CreateLogger("ConfigurationService"), new UploadService( gatewayProcessorConfigProvider.CreateInnerEyeSegmentationClient(segmentationClientLogger), aetConfigurationProvider.AETConfigModels, GatewayMessageQueue.UploadQueuePath, GatewayMessageQueue.DownloadQueuePath, GatewayMessageQueue.DeleteQueuePath, gatewayProcessorConfigProvider.DequeueServiceConfig, loggerFactory.CreateLogger("UploadService"), instances: 2), new DownloadService( gatewayProcessorConfigProvider.CreateInnerEyeSegmentationClient(segmentationClientLogger), GatewayMessageQueue.DownloadQueuePath, GatewayMessageQueue.PushQueuePath, GatewayMessageQueue.DeleteQueuePath, gatewayProcessorConfigProvider.DownloadServiceConfig, gatewayProcessorConfigProvider.DequeueServiceConfig, loggerFactory.CreateLogger("DownloadService"), instances: 1), new PushService( aetConfigurationProvider.AETConfigModels, new DicomDataSender(), GatewayMessageQueue.PushQueuePath, GatewayMessageQueue.DeleteQueuePath, gatewayProcessorConfigProvider.DequeueServiceConfig, loggerFactory.CreateLogger("PushService"), instances: 1), new DeleteService( GatewayMessageQueue.DeleteQueuePath, gatewayProcessorConfigProvider.DequeueServiceConfig, loggerFactory.CreateLogger("DeleteService")))); } } }
/// <summary> /// Validates the license key using the InnerEye segmentation client. /// </summary> /// <param name="gatewayProcessorConfigProvider">Gateway processor config provider.</param> /// <param name="licenseKey">The license key to validate.</param> /// <param name="inferenceUri">Inference Uri to validate.</param> /// <returns>If valid and text to display with the validation result.</returns> internal static async Task <(bool Result, string ValidationText)> ValidateLicenseKeyAsync(GatewayProcessorConfigProvider gatewayProcessorConfigProvider, string licenseKey, Uri inferenceUri) { var validationText = string.Empty; var processorSettings = gatewayProcessorConfigProvider.ProcessorSettings(); var existingInferenceUri = processorSettings.InferenceUri; var existingLicenseKey = processorSettings.LicenseKey; try { // Update the settings for the Gateway. gatewayProcessorConfigProvider.SetProcessorSettings(inferenceUri, licenseKey); using (var segmentationClient = gatewayProcessorConfigProvider.CreateInnerEyeSegmentationClient()()) { await segmentationClient.PingAsync(); } return(true, validationText); } catch (AuthenticationException) { validationText = "Invalid product key"; } catch (Exception) { validationText = "Unable to connect to inference service uri"; } // Restore the previous config gatewayProcessorConfigProvider.SetProcessorSettings(existingInferenceUri, existingLicenseKey); return(false, validationText); }