public async Task <bool> Handle(TimeInStudentIDCommand request, CancellationToken cancellationToken)
            {
                var _dateNow = DateTime.Now.Date;
                //DateTime from = Convert.ToDateTime("00:00:01");
                //DateTime to = Convert.ToDateTime("11:59:59");


                StudentBasicInfo _checkStudentID = dbContext.StudentBasicInfos.Find(request.studID);

                if (_checkStudentID == null)
                {
                    throw new Exception("Student ID does not exist!");
                }

                var _checkTimeInToday = dbContext.StudentDailyTimeRecords.Select(a => a.StudentBasicInfoID == request.studID && a.StudentTimeIn.Date == _dateNow).ToList();

                if (_checkTimeInToday.Count() > 0)
                {
                    throw new Exception("Student ID has already timed in!");
                }

                StudentDailyTimeRecord _studentTimeIn = new StudentDailyTimeRecord
                {
                    StudentBasicInfoID = request.studID,
                    StudentTimeIn      = DateTime.Now
                };

                dbContext.StudentDailyTimeRecords.Add(_studentTimeIn);
                await dbContext.SaveChangesAsync();

                return(true);
            }
Esempio n. 2
0
            public async Task <DateTime> Handle(TimeOutStudentIDCommand request, CancellationToken cancellationToken)
            {
                var      _dateNow = DateTime.Now.Date;
                DateTime _timeOut = Convert.ToDateTime("0001-01-01 00:00:00.0000000");
                ////DateTime from = Convert.ToDateTime("00:00:01");
                ////DateTime to = Convert.ToDateTime("11:59:59");

                //var _checkTimeInToday = dbContext.StudentsTimeIn.Select(a => a.StudentBasicInfoID == request.studID && a.StudentTimeInRecord.Date == _dateNow).ToList();


                var _checkStudentID = dbContext.StudentBasicInfos.Find(request.studID);

                if (_checkStudentID == null)
                {
                    throw new Exception("Student ID does not exist!");
                }


                var _checkTimeOutToday = dbContext.StudentDailyTimeRecords.Select(a => a.StudentBasicInfoID == request.studID && a.StudentTimeOut == _timeOut).ToList();

                if (_checkTimeOutToday.Count() > 1)
                {
                    throw new Exception("Student ID has already timed out!");
                }


                var _getStudentTimeInRecord = dbContext.StudentDailyTimeRecords.Where(a => a.StudentBasicInfoID == request.studID && a.StudentTimeIn == _dateNow).SingleOrDefault();

                var _getStudentIDTimeIn = _getStudentTimeInRecord.StudentBasicInfoID;
                var _getStudentTimeIn   = _getStudentTimeInRecord.StudentTimeIn;


                var _deleteStudentTimeIn = dbContext.StudentDailyTimeRecords.Find(_getStudentIDTimeIn);

                dbContext.StudentDailyTimeRecords.Remove(_deleteStudentTimeIn);
                await dbContext.SaveChangesAsync();


                StudentDailyTimeRecord _studentNewRecord = new StudentDailyTimeRecord
                {
                    StudentBasicInfoID = request.studID,
                    StudentTimeIn      = _getStudentTimeIn,
                    StudentTimeOut     = DateTime.Now
                };

                dbContext.StudentDailyTimeRecords.Add(_studentNewRecord);
                await dbContext.SaveChangesAsync();

                return(_getStudentTimeIn);
            }