示例#1
0
 private void Handle(SolutionEvent @event)
 {
     Applications.Add(new AuthenticationClient(
                          authenticationType: @event.GetValue("AuthenticationType"),
                          applicationName: @event.GetValue("ApplicationName"),
                          applicationUrl: @event.GetValue("ApplicationUrl")));
 }
示例#2
0
 private void HandleIdentityServerAvailable(SolutionEvent @event)
 {
     _solutionEvents.Publish(ApplicationEvents.Config_AppSetting, new Dictionary <string, string>()
     {
         { "Key", "IdentityServer.Issuer.Name" },
         { "Value", @event.GetValue("AuthorityUrl") }
     });
 }
示例#3
0
        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);
        }
示例#4
0
        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);
            }
        }
示例#6
0
        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);
        }
示例#8
0
        /// <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);
        }