public ClockServer(IOptions <ClockServerOptions> options)
 {
     Options = options?.Value ?? throw new ArgumentNullException(nameof(options));
     Update(Options.AsSettings());
     Elapsed             = TimeSpan.Zero;
     ClockTimer          = new Timer(1000);
     ClockTimer.Elapsed += Tick;
     Multicaster         = new ClockMulticaster(Options.Multicast, this);
     PollingService      = new ClockPollingService(Options.Polling, this);
 }
 public ClockServer(IOptions <ClockServerOptions> options)
 {
     Options  = options?.Value ?? throw new ArgumentNullException(nameof(options));
     Name     = Options.Name;
     Password = Options.Password;
     Update(Options.AsSettings());
     Elapsed             = TimeSpan.Zero;
     ClockTimer          = new Timer(1000);
     ClockTimer.Elapsed += Tick;
     Multicaster         = new ClockMulticaster(Options.Multicast, this);
     PollingService      = new ClockPollingService(Options.Polling, this);
     UtcOffset           = TimeZoneInfo.FindSystemTimeZoneById(Options.TimeZoneId).GetUtcOffset(DateTime.Today);
 }