Skip to content

Commit

Permalink
fix(resolver-ui) - Using ListBox in SimpleResolverUIPage, fixing nami…
Browse files Browse the repository at this point in the history
…ng conventions, added more tests, removed RelayCommand implementation, bind to properties, removing duplicated license headers, using Application.Current.Dispatcher
  • Loading branch information
lilla28 committed Jun 18, 2024
1 parent 5cd8e8d commit f5ce1fe
Show file tree
Hide file tree
Showing 24 changed files with 426 additions and 488 deletions.
21 changes: 21 additions & 0 deletions examples/fdc3-appdirectory/apps-with-intents.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@
"interop": {
"intents": {
"listensFor": {
"ViewChart": {
"name": "ViewChart",
"displayName": "ViewChart",
"contexts": [
"fdc3.instrument"
]
}
}
}
}
Expand Down Expand Up @@ -44,6 +51,13 @@
"contexts": [
"fdc3.nothing"
]
},
"ViewChart": {
"name": "ViewChart",
"displayName": "ViewChart",
"contexts": [
"fdc3.instrument"
]
}
},
"raises": {}
Expand Down Expand Up @@ -73,6 +87,13 @@
"contexts": [
"fdc3.testContext"
]
},
"ViewChart": {
"name": "ViewChart",
"displayName": "ViewChart",
"contexts": [
"fdc3.instrument"
]
}
},
"raises": {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public static Fdc3DesktopAgentBuilder UseMessageRouter(
builder.ServiceCollection.Configure<Fdc3DesktopAgentOptions>(configureOptions);

Check warning on line 29 in src/fdc3/dotnet/DesktopAgent/src/MorganStanley.ComposeUI.DesktopAgent/DependencyInjection/Fdc3DesktopAgentBuilderExtensions.cs

View check run for this annotation

Codecov / codecov/patch

src/fdc3/dotnet/DesktopAgent/src/MorganStanley.ComposeUI.DesktopAgent/DependencyInjection/Fdc3DesktopAgentBuilderExtensions.cs#L29

Added line #L29 was not covered by tests
}

builder.ServiceCollection.AddSingleton<IResolverUICommunicator, ResolverUiMessageRouterCommunicator>();
builder.ServiceCollection.AddSingleton<IResolverUICommunicator, ResolverUIMessageRouterCommunicator>();
builder.ServiceCollection.AddHostedService<Fdc3DesktopAgentMessageRouterService>();

return builder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ public async ValueTask<RaiseIntentResult<RaiseIntentResponse>> RaiseIntent(Raise
}

//Resolve to one app via ResolverUI.
var result = await WaitForResolverUiAsync(appIntent.Apps);
var result = await WaitForResolverUIAsync(appIntent.Apps);

if (result != null && result.Error == null)
{
Expand All @@ -426,7 +426,7 @@ public async ValueTask<RaiseIntentResult<RaiseIntentResponse>> RaiseIntent(Raise
};
}

private async Task<ResolverUIResponse?> WaitForResolverUiAsync(IEnumerable<AppMetadata> apps)
private async Task<ResolverUIResponse?> WaitForResolverUIAsync(IEnumerable<AppMetadata> apps)
{
using var cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromMinutes(2));

Expand All @@ -438,7 +438,7 @@ public async ValueTask<RaiseIntentResult<RaiseIntentResponse>> RaiseIntent(Raise
{
if (_logger.IsEnabled(LogLevel.Debug))
{
_logger.LogDebug(exception, "MessageRouter didn't receive response from the ResolverUi.");
_logger.LogDebug(exception, "MessageRouter didn't receive response from the ResolverUI.");

Check warning on line 441 in src/fdc3/dotnet/DesktopAgent/src/MorganStanley.ComposeUI.DesktopAgent/Fdc3DesktopAgent.cs

View check run for this annotation

Codecov / codecov/patch

src/fdc3/dotnet/DesktopAgent/src/MorganStanley.ComposeUI.DesktopAgent/Fdc3DesktopAgent.cs#L441

Added line #L441 was not covered by tests
}

return new ResolverUIResponse()

Check warning on line 444 in src/fdc3/dotnet/DesktopAgent/src/MorganStanley.ComposeUI.DesktopAgent/Fdc3DesktopAgent.cs

View check run for this annotation

Codecov / codecov/patch

src/fdc3/dotnet/DesktopAgent/src/MorganStanley.ComposeUI.DesktopAgent/Fdc3DesktopAgent.cs#L444

Added line #L444 was not covered by tests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ internal static class Fdc3Topic
internal static string GetIntentResult => TopicRoot + "getIntentResult";
internal static string SendIntentResult => TopicRoot + "sendIntentResult";
internal static string AddIntentListener => TopicRoot + "addIntentListener";
public static string ResolverUi => TopicRoot + "resolverUI";
public static string ResolverUI => TopicRoot + "resolverUI";

//IntentListeners will be listening at this endpoint
internal static string RaiseIntentResolution(string intent, string instanceId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,24 @@

using System.Text.Json;
using Finos.Fdc3;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using MorganStanley.ComposeUI.Fdc3.DesktopAgent.Contracts;
using MorganStanley.ComposeUI.Fdc3.DesktopAgent.Converters;
using MorganStanley.ComposeUI.Messaging;

namespace MorganStanley.ComposeUI.Fdc3.DesktopAgent.Infrastructure.Internal;

internal class ResolverUiMessageRouterCommunicator : IResolverUICommunicator
internal class ResolverUIMessageRouterCommunicator : IResolverUICommunicator
{
private readonly IMessageRouter _messageRouter;
private readonly JsonSerializerOptions _jsonMessageSerializerOptions = new()
{
Converters = { new AppMetadataJsonConverter() }
};
private readonly ILogger<ResolverUiMessageRouterCommunicator> _logger;

public ResolverUiMessageRouterCommunicator(
IMessageRouter messageRouter,
ILogger<ResolverUiMessageRouterCommunicator>? logger = null)
public ResolverUIMessageRouterCommunicator(
IMessageRouter messageRouter)
{
_messageRouter = messageRouter;
_logger = logger ?? NullLogger<ResolverUiMessageRouterCommunicator>.Instance;
}

public async Task<ResolverUIResponse?> SendResolverUIRequest(IEnumerable<IAppMetadata> appMetadata, CancellationToken cancellationToken = default)
Expand All @@ -47,7 +42,7 @@ public ResolverUiMessageRouterCommunicator(
};

var responseBuffer = await _messageRouter.InvokeAsync(
Fdc3Topic.ResolverUi,
Fdc3Topic.ResolverUI,
MessageBuffer.Factory.CreateJson(request, _jsonMessageSerializerOptions),
cancellationToken: cancellationToken);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

namespace MorganStanley.ComposeUI.Fdc3.DesktopAgent.Tests.Infrastructure.Internal;

public class ResolverUiMessageRouterCommunicatorTests
public class ResolverUIMessageRouterCommunicatorTests
{
private readonly JsonSerializerOptions _jsonSerializerOptions = new()
{
Expand All @@ -40,7 +40,7 @@ public async Task SendResolverUIRequest_will_return_null()
It.IsAny<CancellationToken>()))
.Returns(null);

var resolverUIMessageRouterCommunicator = new ResolverUiMessageRouterCommunicator(messageRouterMock.Object);
var resolverUIMessageRouterCommunicator = new ResolverUIMessageRouterCommunicator(messageRouterMock.Object);

var response = await resolverUIMessageRouterCommunicator.SendResolverUIRequest(It.IsAny<IEnumerable<IAppMetadata>>());

Expand All @@ -63,7 +63,7 @@ public async Task SendResolverUIRequest_will_return_response()
AppMetadata = new AppMetadata(){ AppId = "testAppId" }
}, _jsonSerializerOptions)));

var resolverUIMessageRouterCommunicator = new ResolverUiMessageRouterCommunicator(messageRouterMock.Object);
var resolverUIMessageRouterCommunicator = new ResolverUIMessageRouterCommunicator(messageRouterMock.Object);

var response = await resolverUIMessageRouterCommunicator.SendResolverUIRequest(It.IsAny<IEnumerable<IAppMetadata>>());

Expand Down
69 changes: 36 additions & 33 deletions src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,12 @@
using System.ComponentModel;
using System.Linq;
using System.Threading;



/*
* Morgan Stanley makes this available to you under the Apache License,
* Version 2.0 (the "License"). You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.
*
* See the NOTICE file distributed with this work for additional information
* regarding copyright ownership. Unless required by applicable law or agreed
* to in writing, software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/

using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using CommunityToolkit.Mvvm.Input;
using Finos.Fdc3;
using MorganStanley.ComposeUI.Shell.Fdc3.ResolverUI.Pages;
using Size = System.Drawing.Size;

namespace MorganStanley.ComposeUI.Shell.Fdc3.ResolverUI;

Expand All @@ -51,7 +35,8 @@ internal class Fdc3ResolverUIViewModel : INotifyPropertyChanged, IDisposable
private readonly Page _advancedResolverUIPage;
private readonly Size _advancedResolverUISize = new(800, 600);

Check warning on line 36 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L36

Added line #L36 was not covered by tests
private Page _currentPage;
private Size _currentSize;
private double _currentWidth;
private double _currentHeight;

internal CancellationToken UserCancellationToken => _userCancellationTokenSource.Token;

Check warning on line 41 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L41

Added line #L41 was not covered by tests

Expand All @@ -63,25 +48,24 @@ public Fdc3ResolverUIViewModel(IEnumerable<IAppMetadata> apps)
{
_appData.Add(new()
{
AppId = app.AppId,
AppMetadata = app,
Icon = app.Icons.FirstOrDefault() //First Icon from the array will be shown on the ResolverUi
Icon = app.Icons.FirstOrDefault() //First Icon from the array will be shown on the ResolverUI
});

Check warning on line 53 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L49-L53

Added lines #L49 - L53 were not covered by tests
}

_simpleResolverUIPage = new SimpleResolverUIPage(_appData);
_advancedResolverUIPage = new AdvancedResolverUIPage(_appData);
_currentPage = _simpleResolverUIPage;
SetSize(_simpleResolverUISize);
OpenSimpleViewCommand = new RelayCommand(_ => SetCurrentPageToSimpleView());
OpenAdvancedViewCommand = new RelayCommand(_ => SetCurrentPageToAdvancedView());
SetCurrentSize(_simpleResolverUISize);

Check warning on line 59 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L56-L59

Added lines #L56 - L59 were not covered by tests

OpenSimpleViewCommand = new RelayCommand(SetCurrentPageToSimpleView);
OpenAdvancedViewCommand = new RelayCommand(SetCurrentPageToAdvancedView);
}

Check warning on line 63 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L61-L63

Added lines #L61 - L63 were not covered by tests

private void SetSize(Size size)
private void SetCurrentSize(Size size)
{
_currentSize = size;
SizeChanged?.Invoke(this, new PageSizeChangedEventArgs(_currentSize));
CurrentWidth = size.Width;
CurrentHeight = size.Height;
}

Check warning on line 69 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L67-L69

Added lines #L67 - L69 were not covered by tests

public Page CurrentPage
Expand All @@ -97,21 +81,40 @@ public Page CurrentPage
private void SetCurrentPageToSimpleView()
{
CurrentPage = _simpleResolverUIPage;

Check warning on line 83 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L83

Added line #L83 was not covered by tests
SetSize(_simpleResolverUISize);

SetCurrentSize(_simpleResolverUISize);
}

Check warning on line 86 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L85-L86

Added lines #L85 - L86 were not covered by tests

private void SetCurrentPageToAdvancedView()
{
CurrentPage = _advancedResolverUIPage;
SetSize(_advancedResolverUISize);
SetCurrentSize(_advancedResolverUISize);
}

Check warning on line 92 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L90-L92

Added lines #L90 - L92 were not covered by tests

public ICommand OpenSimpleViewCommand { get; }
public ICommand OpenAdvancedViewCommand { get; }

Check warning on line 95 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L94-L95

Added lines #L94 - L95 were not covered by tests

public double CurrentWidth
{
get => _currentWidth;

Check warning on line 99 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L99

Added line #L99 was not covered by tests
set
{
_currentWidth = value;
OnPropertyChanged(nameof(CurrentWidth));
}

Check warning on line 104 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L102-L104

Added lines #L102 - L104 were not covered by tests
}

public double CurrentHeight
{
get => _currentHeight;

Check warning on line 109 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L109

Added line #L109 was not covered by tests
set
{
_currentHeight = value;
OnPropertyChanged(nameof(CurrentHeight));
}

Check warning on line 114 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L112-L114

Added lines #L112 - L114 were not covered by tests
}

public event PropertyChangedEventHandler? PropertyChanged;
public event EventHandler<PageSizeChangedEventArgs>? SizeChanged;

protected virtual void OnPropertyChanged(string propertyName)
{
Expand All @@ -125,7 +128,7 @@ internal void CancelDialog()

public void Dispose()
{
_userCancellationTokenSource?.Cancel();
_userCancellationTokenSource?.Dispose();
_userCancellationTokenSource.Cancel();
_userCancellationTokenSource.Dispose();
}

Check warning on line 133 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIViewModel.cs#L131-L133

Added lines #L131 - L133 were not covered by tests
}
34 changes: 7 additions & 27 deletions src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Threading;
using Finos.Fdc3;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
Expand All @@ -33,16 +31,15 @@ public ValueTask<ResolverUIResponse> ShowResolverUI(IEnumerable<IAppMetadata> ap
{
try
{
var dispatcher = GetDispatcher();
var dispatcher = Application.Current.Dispatcher;

Check warning on line 34 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs#L34

Added line #L34 was not covered by tests

Fdc3ResolverUI? resolverUI = null;
Task? timeoutTask = null;

Check warning on line 37 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs#L36-L37

Added lines #L36 - L37 were not covered by tests

dispatcher.Invoke(() =>
{

Check warning on line 40 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs#L39-L40

Added lines #L39 - L40 were not covered by tests
if (Application.Current.Dispatcher == null
|| Application.Current.Dispatcher.HasShutdownStarted
|| Application.Current.Dispatcher.HasShutdownFinished)
if (dispatcher.HasShutdownStarted
|| dispatcher.HasShutdownFinished)
{
return;
}
Expand Down Expand Up @@ -85,10 +82,10 @@ public ValueTask<ResolverUIResponse> ShowResolverUI(IEnumerable<IAppMetadata> ap
catch (TimeoutException)

Check warning on line 82 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs#L82

Added line #L82 was not covered by tests
{
return ValueTask.FromResult(
new ResolverUIResponse()
{
Error = ResolveError.ResolverTimeout,
});
new ResolverUIResponse()
{
Error = ResolveError.ResolverTimeout,
});

Check warning on line 88 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs#L84-L88

Added lines #L84 - L88 were not covered by tests
}
catch (Exception exception)

Check warning on line 90 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs#L90

Added line #L90 was not covered by tests
{
Expand All @@ -104,21 +101,4 @@ public ValueTask<ResolverUIResponse> ShowResolverUI(IEnumerable<IAppMetadata> ap
});

Check warning on line 101 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs#L97-L101

Added lines #L97 - L101 were not covered by tests
}
}

Check warning on line 103 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUIWindow.cs#L103

Added line #L103 was not covered by tests

private static Dispatcher GetDispatcher()
{
return Application.Current.Dispatcher.Invoke(() =>
{
return
//First window which is active
Application.Current.Windows
.Cast<Window>()
.FirstOrDefault(window => window.IsActive) ??
//Or the first window which is visible
Application.Current.Windows
.Cast<Window>()
.FirstOrDefault(window => window.Visibility == Visibility.Visible);
})?.Dispatcher ??
Application.Current.Dispatcher;
}
}
6 changes: 3 additions & 3 deletions src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUi.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ See the License for the specific language governing permissions and limitations
MouseDown="Window_MouseDown"
AllowDrop="True"
AllowsTransparency="True"
Width="500"
Height="400"
DataContext="{Binding RelativeSource={RelativeSource Self}}">
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Height="{Binding CurrentHeight, Mode=TwoWay}"
Width="{Binding CurrentWidth, Mode=TwoWay}">

<Border>
<Grid
Expand Down
10 changes: 0 additions & 10 deletions src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUi.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,6 @@ public Fdc3ResolverUI(IEnumerable<IAppMetadata> apps)

_viewModel = new Fdc3ResolverUIViewModel(apps);
DataContext = _viewModel;
_viewModel.SizeChanged += OnSizeChanged;
}

private void OnSizeChanged(object? sender, PageSizeChangedEventArgs e)
{
if (e.NewSize != Size.Empty)
{
Width = e.NewSize.Width;
Height = e.NewSize.Height;
}
}

Check warning on line 39 in src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUi.xaml.cs

View check run for this annotation

Codecov / codecov/patch

src/shell/dotnet/Shell/Fdc3/ResolverUi/Fdc3ResolverUi.xaml.cs#L37-L39

Added lines #L37 - L39 were not covered by tests

protected override void OnClosing(CancelEventArgs e)
Expand Down
Loading

0 comments on commit f5ce1fe

Please sign in to comment.