• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

thorstenalpers / CleanMyPosts / 15097829564

18 May 2025 04:20PM UTC coverage: 11.132%. First build
15097829564

push

github

thorstenalpers
Merge branch 'develop'

15 of 244 branches covered (6.15%)

Branch coverage included in aggregate %.

42 of 79 new or added lines in 12 files covered. (53.16%)

101 of 798 relevant lines covered (12.66%)

0.36 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

76.32
/src/UI/Helpers/ServiceCollectionExtensions.cs
1
using System.Windows;
2
using System.Windows.Media.Imaging;
3
using CleanMyPosts.Core.Contracts.Services;
4
using CleanMyPosts.Core.Services;
5
using CleanMyPosts.UI.Contracts.Services;
6
using CleanMyPosts.UI.Contracts.Views;
7
using CleanMyPosts.UI.Models;
8
using CleanMyPosts.UI.Services;
9
using CleanMyPosts.UI.ViewModels;
10
using CleanMyPosts.UI.Views;
11
using Microsoft.Extensions.Configuration;
12
using Microsoft.Extensions.DependencyInjection;
13
using Microsoft.Extensions.Options;
14
using NetSparkleUpdater.Interfaces;
15
using NetSparkleUpdater.UI.WPF;
16

17
namespace CleanMyPosts.UI.Helpers;
18

19
public static class ServiceCollectionExtensions
20
{
21
    public static void AddCleanMyPosts(this IServiceCollection services, IConfiguration configuration)
22
    {
23
        services.AddHostedService<ApplicationHostService>();
4✔
24

25
        services.AddSingleton<IFileService, FileService>();
4✔
26
        services.AddSingleton<IAppSettingsService, AppSettingsService>();
4✔
27
        services.AddSingleton<IUIFactory>(sp =>
4✔
28
        {
4✔
NEW
29
            UIFactory factory = null;
×
NEW
30
            Application.Current.Dispatcher.Invoke(() =>
×
NEW
31
            {
×
NEW
32
                var options = sp.GetRequiredService<IOptions<UpdaterOptions>>().Value;
×
NEW
33
                var uri = new Uri(options.IconUri, UriKind.Absolute);
×
NEW
34
                var imageSource = new BitmapImage(uri);
×
NEW
35
                factory = new UIFactory(imageSource);
×
NEW
36
            });
×
NEW
37
            return factory;
×
38
        });
4✔
39

40
        services.AddSingleton<IWindowManagerService, WindowManagerService>();
4✔
41
        services.AddSingleton<IApplicationInfoService, ApplicationInfoService>();
4✔
42
        services.AddSingleton<IPersistAndRestoreService, PersistAndRestoreService>();
4✔
43
        services.AddSingleton<IThemeSelectorService, ThemeSelectorService>();
4✔
44
        services.AddSingleton<IPageService, PageService>();
4✔
45
        services.AddSingleton<INavigationService, NavigationService>();
4✔
46
        services.AddSingleton<IXWebViewScriptService, XWebViewScriptService>();
4✔
47
        services.AddSingleton<IWebViewHostService, WebViewHostService>();
4✔
48
        services.AddSingleton<IUpdateService, UpdateService>();
4✔
49

50
        services.AddTransient<IShellWindow, ShellWindow>();
4✔
51
        services.AddTransient<ShellViewModel>();
4✔
52
        services.AddSingleton<LogPage>();
4✔
53
        services.AddSingleton<LogViewModel>();
4✔
54
        services.AddSingleton<XViewModel>();
4✔
55
        services.AddSingleton<XPage>();
4✔
56

57
        services.AddTransient<SettingsViewModel>();
4✔
58
        services.AddTransient<SettingsPage>();
4✔
59

60
        services.AddTransient<IShellDialogWindow, ShellDialogWindow>();
4✔
61
        services.AddTransient<ShellDialogViewModel>();
4✔
62

63
        services.AddHttpClient();
4✔
64

65
        services.Configure<AppConfig>(configuration.GetSection(nameof(AppConfig)));
4✔
66
        services.Configure<UpdaterOptions>(configuration.GetSection("Updater"));
4✔
67
    }
4✔
68
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc