/
UwpShinyHost.cs
40 lines (35 loc) · 1.45 KB
/
UwpShinyHost.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using Shiny.Infrastructure;
using Shiny.IO;
using Shiny.Jobs;
using Shiny.Net;
using Shiny.Power;
using Shiny.Settings;
using Shiny.Support.Uwp;
using Microsoft.Extensions.DependencyInjection;
using Windows.ApplicationModel.Background;
namespace Shiny
{
public class UwpShinyHost : ShinyHost
{
public static void Init(IStartup startup = null, Action<IServiceCollection> platformBuild = null)
=> InitPlatform(startup, services =>
{
services.AddSingleton<IEnvironment, EnvironmentImpl>();
services.AddSingleton<IConnectivity, ConnectivityImpl>();
services.AddSingleton<IPowerManager, PowerManagerImpl>();
services.AddSingleton<IRepository, FileSystemRepositoryImpl>();
services.AddSingleton<IFileSystem, FileSystemImpl>();
services.AddSingleton<ISerializer, JsonNetSerializer>();
services.AddSingleton<ISettings, SettingsImpl>();
services.AddSingleton<UwpContext>();
services.AddSingleton<IJobManager, JobManager>();
services.AddSingleton<IBackgroundTaskProcessor, JobBackgroundTaskProcessor>();
// TODO
//services.RegisterPostBuildAction(sp =>
// ShinyBackgroundTask.Bridge = sp.ResolveOrInstantiate<IUwpBridge>()
//);
platformBuild?.Invoke(services);
});
}
}