private static void AssertOffTimeShouldBeCorrect(IHrResourceService interFace, DateTime now, DateTime startMonitorTime) { bool IsWeekend() => now.DayOfWeek == DayOfWeek.Saturday || now.DayOfWeek == DayOfWeek.Sunday; var shouldHavePunchTime = now >= interFace.NextPunchedOutTime && startMonitorTime.Hour <= 18; var log = $"now:{now} isweekend : {IsWeekend()} info:{interFace.ToLogInfo()}"; if (IsWeekend()) { interFace.PunchedOutTime.Should().BeNull(log); interFace.NextPunchedOutTime.Should().NotBeNull(log); return; } if (!shouldHavePunchTime) { interFace.PunchedOutTime.Should().BeNull(log); var nextTime = startMonitorTime.Day == now.Day && startMonitorTime.Hour > 18? now.AddDays(1):now; interFace.NextPunchedOutTime.Should().BeBefore(nextTime.Date.AddHours(19), log); interFace.NextPunchedOutTime.Should().BeAfter(nextTime.Date.AddHours(18.5), log); return; } interFace.PunchedOutTime.Should().NotBeNull(log); interFace.NextPunchedOutTime.Should().BeBefore(now.Date.AddHours(19), log); interFace.NextPunchedOutTime.Should().BeAfter(now.Date.AddHours(18), log); interFace.PunchedOutTime.Should().BeBefore(now.Date.AddHours(19), log); interFace.PunchedOutTime.Should().BeAfter(now.Date.AddHours(18), log); }
public MainWindow(IHrResourceService hrResourceService, ILoggerReader loggerReader, IAppConfiguration appConfiguration) { _hrResourceService = hrResourceService; _loggerReader = loggerReader; _appConfiguration = appConfiguration; _hrResourceService.Init(); _notifyIcon = new TaskbarIcon(); InitIcon(); InitializeComponent(); }
public HrResourceService(ILogger logger, IPunchCardService punchCardService) : base(logger) { _logger = logger; _punchCardService = punchCardService; _instance = this; var(onWorker, offWork) = AsyncHelper.RunSync(() => _punchCardService.GetDayCardDetailAsync()); if (DateTime.TryParse(onWorker, out var result)) { _instance.PunchedInTime = result; } if (DateTime.TryParse(offWork, out var result2)) { _instance.PunchedOutTime = result2; } }
public MainWindow() { _notifyIcon = new NotifyIcon { BalloonTipText = @"已經最小化,點擊查看選項", BalloonTipTitle = $@"自動打卡系統 v{_curAssembly.GetName().Version}" }; _notifyIcon.Text = _curAssembly.GetName().Version.ToString(); _loggerReader = new Logger(); _logger = (ILogger)_loggerReader; _appConfiguration = new AppConfiguration(); var service = new NueIpService(_logger, _appConfiguration); _hrResourceService = new HrResourceService(_logger, service); _hrResourceService.Init(); InitIcon(); MinizeIcon(); InitializeComponent(); SystemEvents.SessionEnding += SystemEvents_SessionEnding; SystemEvents.PowerModeChanged += OnPowerChange; }