public VsAppShell(ITelemetryService telemetryService) { _appConstants = new ApplicationConstants(); ProgressDialog = new VsProgressDialog(this); FileDialog = new VsFileDialog(this); var loggingPermissions = new LoggingPermissions(_appConstants, telemetryService, new RegistryImpl()); _coreServices = new CoreServices(_appConstants, telemetryService, new VsTaskService(), new ProcessServices(), loggingPermissions, this, new SecurityService(this)); }
public CoreServices(IApplicationConstants appConstants , ITelemetryService telemetry , ITaskService tasks , IMainThread mainThread , ISecurityService security) { Registry = new RegistryImpl(); LoggingPermissions = new LoggingPermissions(appConstants, telemetry, Registry); Telemetry = telemetry; Security = security; Tasks = tasks; ProcessServices = new ProcessServices(); FileSystem = new FileSystem(); MainThread = mainThread; Log = new Logger(appConstants.ApplicationName, Path.GetTempPath(), LoggingPermissions); }
public static ICoreServices CreateReal() { var appConstants = new TestAppConstants(); var telemetryService = new TelemetryTestService(); var registry = new RegistryImpl(); var loggingPermissions = new LoggingPermissions(appConstants, telemetryService, registry); var log = new Logger(new NullLogWriter(), loggingPermissions); var fileSystem = new FileSystem(); var processServices = new ProcessServices(); return(new CoreServices( telemetryService, loggingPermissions, new SecurityServiceStub(), new TestTaskService(), UIThreadHelper.Instance, log, fileSystem, processServices)); }
public void Overrides(bool telemetryEnabled, int?logVerbosity, int?feedbackSetting, LogVerbosity expectedMaxLogLevel, bool expectedFeedback) { var rtvsKey = Substitute.For <IRegistryKey>(); rtvsKey.GetValue(LoggingPermissions.LogVerbosityValueName).Returns(logVerbosity); rtvsKey.GetValue(LoggingPermissions.FeedbackValueName).Returns(feedbackSetting); var hklm = Substitute.For <IRegistryKey>(); hklm.OpenSubKey("rtvs").Returns(rtvsKey); var registry = Substitute.For <IRegistry>(); registry.LocalMachineHive.Returns("rtvs"); registry.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).Returns(hklm); var telemetry = Substitute.For <ITelemetryService>(); telemetry.IsEnabled.Returns(telemetryEnabled); var services = new ServiceManager() .AddService(telemetry) .AddService(registry); var permissions = new LoggingPermissions(services); permissions.MaxVerbosity.Should().Be(expectedMaxLogLevel); permissions.IsFeedbackPermitted.Should().Be(expectedFeedback); if (logVerbosity.HasValue) { var values = Enum.GetValues(typeof(LogVerbosity)); foreach (var v in values) { permissions.CurrentVerbosity = (LogVerbosity)v; ((int)permissions.CurrentVerbosity).Should().BeGreaterOrEqualTo((int)LogVerbosity.None); ((int)permissions.CurrentVerbosity).Should().BeLessOrEqualTo((int)permissions.MaxVerbosity); } } }
private void ConfigureServices() { var platformServices = new VsPlatformServices(); var telemetry = new VsTelemetryService(); var componentModel = (IComponentModel)VsPackage.GetGlobalService(typeof(SComponentModel)); var loggingPermissions = new LoggingPermissions(platformServices, telemetry, new RegistryImpl()); var settings = new RToolsSettingsImplementation(this, new VsSettingsStorage(), loggingPermissions); var compositionCatalog = new CompositionCatalog(componentModel.DefaultCompositionService, componentModel.DefaultExportProvider); var exportProvider = componentModel.DefaultExportProvider; _services .AddService(componentModel) .AddService(componentModel.DefaultCompositionService) .AddService(exportProvider) .AddService(compositionCatalog) .AddService(new VsMainThread()) .AddService(new VsTaskService()) .AddService(_idleTimeService) .AddService(new VsUIServices(this)) .AddService(new SecurityService(this)) .AddService(loggingPermissions) .AddService(new Logger(ApplicationName, Path.GetTempPath(), loggingPermissions)) .AddService(platformServices) .AddService(settings) .AddService(new REditorSettings(new LanguageSettingsStorage(this, RGuidList.RLanguageServiceGuid, RGuidList.RPackageGuid, new string[] { RPackage.ProductName }))) .AddService(new ImageService(exportProvider.GetExportedValue <IGlyphService>())) .AddService(new VsEditorSupport(this)) .AddService(telemetry) .AddService(new FileSystem()) .AddService(new ProcessServices()) .AddService(new RegistryImpl()) .AddService(new MicrosoftRClientInstaller()) .AddWindowsRInterpretersServices() .AddWindowsHostClientServices(); // TODO: add more settings.LoadSettings(); }