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

net-daemon / netdaemon / 23403721360

22 Mar 2026 01:07PM UTC coverage: 83.944% (-0.2%) from 84.108%
23403721360

push

github

web-flow
Add sun events, i.e. scheduler.RunAtSunset() (#1358)

Co-authored-by: Tomas Hellström <tomas.hellstrom@yahoo.se>

900 of 1191 branches covered (75.57%)

Branch coverage included in aggregate %.

18 of 32 new or added lines in 5 files covered. (56.25%)

3408 of 3941 relevant lines covered (86.48%)

1906.63 hits per line

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

0.0
/src/Extensions/NetDaemon.Extensions.Scheduling/DependencyInjectionSetup.cs
1
using System.Reactive.Concurrency;
2
using Microsoft.Extensions.DependencyInjection;
3
using Microsoft.Extensions.Logging;
4
using NetDaemon.Extensions.Scheduler.SunEvents;
5

6
namespace NetDaemon.Extensions.Scheduler;
7

8
/// <summary>
9
///     Implements dependency injection for the scheduler
10
/// </summary>
11
public static class DependencyInjectionSetup
12
{
13
    /// <summary>
14
    ///     Adds scheduling capabilities through dependency injection
15
    /// </summary>
16
    /// <param name="services">Provided service collection</param>
17
    public static IServiceCollection AddNetDaemonScheduler(this IServiceCollection services)
18
    {
19
        services.AddScoped<INetDaemonScheduler, NetDaemonScheduler>();
×
20
        services.AddScoped<IScheduler>(s => new DisposableScheduler(DefaultScheduler.Instance.WrapWithLogger(s.GetRequiredService<ILogger<IScheduler>>())));
×
21
        return services;
×
22
    }
23

24
    /// <summary>
25
    ///     Adds sun event scheduling capabilities through dependency injection 
26
    /// </summary>
27
    /// <param name="latitude">Latitude of location to use for sun event scheduling</param>
28
    /// <param name="longitude">Longitude of location to use for sun event scheduling</param>
29
    /// <param name="services">Provided service collection</param>
30
    public static IServiceCollection AddSunEventScheduler(this IServiceCollection services, decimal latitude, decimal longitude)
31
    {
NEW
32
        services.AddNetDaemonScheduler();
×
NEW
33
        services.AddScoped<ISolarCalendar>((services) => new SolarCalendar(new Coordinates(latitude, longitude)));
×
NEW
34
        services.AddScoped<ISunEventScheduler, SunEventScheduler>();
×
NEW
35
        return services;
×
36
    }
37
}
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