private void Handle(SolutionEvent @event) { Applications.Add(new AuthenticationClient( authenticationType: @event.GetValue("AuthenticationType"), applicationName: @event.GetValue("ApplicationName"), applicationUrl: @event.GetValue("ApplicationUrl"))); }
private void HandleIdentityServerAvailable(SolutionEvent @event) { _solutionEvents.Publish(ApplicationEvents.Config_AppSetting, new Dictionary <string, string>() { { "Key", "IdentityServer.Issuer.Name" }, { "Value", @event.GetValue("AuthorityUrl") } }); }
public void ShouldAlwaysDropBuildEvents() { var @event = new SolutionEvent { Target = Names.Document("d d"), Action = SolutionAction.AddProject }; // TODO I'm not sure about the correct category... AssertDrop(@event); }
private void HandleIdentityServerAvailable(SolutionEvent @event) { _applicationEvents.Publish(ApplicationEvents.AngularJs_ConfigurationRequired, new Dictionary <string, string>() { { "Key", "identity_authority_url" }, { "Value", @event.GetValue("AuthorityUrl") }, }); // TODO: This is dubious _decoratorDispatcher.Dispatch(x => x.OnIdentityServerAvailable(@event.GetValue("BaseUrl"), @event.GetValue("AuthorityUrl"))); }
private void ProcessDocumentEvent(DocumentEvent documentEvent) { if (_addedNewItem) { _addedNewItem = false; var solutionEvent = new SolutionEvent { Action = SolutionAction.AddProjectItem, Target = documentEvent.Document }; solutionEvent.CopyIDEEventPropertiesFrom(documentEvent); Insert(solutionEvent); } }
public void ShouldSerializeToString() { var solutionEvent = new SolutionEvent { ActiveDocument = Names.Document("d SomeDocument"), ActiveWindow = Names.Window("w SomeWindow"), Action = SolutionAction.RenameSolution, Duration = new TimeSpan(0, 0, 1), IDESessionUUID = "0xDEADBEEF", Target = Names.Solution("SomeSolution"), TriggeredAt = new DateTimeOffset(2010, 01, 01, 12, 30, 44, TimeSpan.FromHours(-4)), TriggeredBy = EventTrigger.Click }; const string expected = "{\"$type\":\"KaVE.Commons.Model.Events.VisualStudio.SolutionEvent, KaVE.Commons\",\"Action\":1,\"Target\":\"0Sln:SomeSolution\",\"IDESessionUUID\":\"0xDEADBEEF\",\"TriggeredAt\":\"2010-01-01T12:30:44-04:00\",\"TriggeredBy\":1,\"Duration\":\"00:00:01\",\"ActiveWindow\":\"0Win:w SomeWindow\",\"ActiveDocument\":\"0Doc:d SomeDocument\"}"; JsonAssert.SerializesTo(solutionEvent, expected); }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> /// <param name="cancellationToken">A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.</param> /// <param name="progress">A provider for progress updates.</param> /// <returns>A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method.</returns> protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "InitializeAsync CppCoverage")); // When initialized asynchronously, the current thread may be a background thread at this point. // Do any initialization that requires the UI thread after switching to the UI thread. await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); //Critical initialization solutionService = this.GetService(typeof(SVsSolution)) as IVsSolution; // Get DTE InitializeDTE(); // Add event tracker eventSolution = new SolutionEvent(solutionService, this.dte); // Build menu await CoverageMenu.InitializeAsync(this, this.dte); }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> /// <param name="cancellationToken">A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.</param> /// <param name="progress">A provider for progress updates.</param> /// <returns>A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method.</returns> protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { try { Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "InitializeAsync CppCoverage")); // When initialized asynchronously, the current thread may be a background thread at this point. // Do any initialization that requires the UI thread after switching to the UI thread. await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); //Critical initialization solutionService = await GetServiceAsync(typeof(SVsSolution)) as IVsSolution; // Get DTE InitializeDTE(); // Restore parameters var options = (CoverageOptionPageGrid)GetDialogPage(typeof(CoverageOptionPageGrid)); if (options != null) { options.LoadSettingsFromStorage(); } // Add event tracker eventSolution = new SolutionEvent(solutionService, dte); // Build menu / dialog await CoverageMenu.InitializeAsync(this, dte as EnvDTE80.DTE2); await NubiloSoft.CoverageExt.CoverageSelectorCommand.InitializeAsync(this); // Call auto load eventSolution.OnAfterOpenSolution(null, 0); Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "InitializeAsync CppCoverage done")); } catch (Exception) { Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "InitializeAsync Error")); } }
public void GenerateSolutionEventTest(string documentIdentifier, string commandId) { var addNewItemCommandEvent = new CommandEvent { CommandId = commandId }; var documentEvent = new DocumentEvent { Document = Names.Document(documentIdentifier) }; _uut.Map(addNewItemCommandEvent); var actuals = _uut.Map(documentEvent); var expectedSolutionEvent = new SolutionEvent { Target = documentEvent.Document, Action = SolutionAction.AddProjectItem }; CollectionAssert.AreEquivalent(new IDEEvent[] { documentEvent, expectedSolutionEvent }, actuals); }