Beispiel #1
0
        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;
            }
        }
Beispiel #4
0
        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;
        }