public async Task <IActionResult> MarkAttendanceIn(MarkAttendanceDTO dto)
        {
            Person person  = null;
            var    persons = _dbContext.Persons.ToList();

            foreach (var p in persons)
            {
                if (p.FingerprintIds.Contains(dto.FingerprintId))
                {
                    person = p;
                    break;
                }
            }

            if (person is null)
            {
                return(BadRequest("Person not enrolled"));
            }

            var attendanceEvent = await _dbContext.Events.FindAsync(dto.EventId);

            var personEvent = new PersonEvent
            {
                Event   = attendanceEvent,
                Person  = person,
                TimeIn  = dto.AttendanceTimeStamp,
                TimeOut = attendanceEvent.End
            };

            _dbContext.PersonEvents.Add(personEvent);
            await _dbContext.SaveChangesAsync();

            return(Ok());
        }
        public async Task <IActionResult> MarkAttendanceOut(MarkAttendanceDTO dto)
        {
            Person person  = null;
            var    persons = _dbContext.Persons.ToList();

            foreach (var p in persons)
            {
                if (p.FingerprintIds.Contains(dto.FingerprintId))
                {
                    person = p;
                    break;
                }
            }

            if (person is null)
            {
                return(BadRequest("Person not enrolled"));
            }

            var personEvent = _dbContext.PersonEvents
                              .FirstOrDefault(x => x.Person.Id == person.Id && x.Event.Id == dto.EventId);

            personEvent.TimeOut = dto.AttendanceTimeStamp;
            await _dbContext.SaveChangesAsync();

            return(Ok());
        }
        public IActionResult MarkAttendance(string eventid, [FromBody] MarkAttendanceDTO markAttendanceDTO)
        {
            Guid machineId = Guid.Parse(eventid);

            if (machineId == null || machineId == Guid.Empty)
            {
                return(BadRequest("Invalid Parameter"));
            }
            attendanceService.MarkAttendance(machineId, markAttendanceDTO);
            return(Ok());
        }
Example #4
0
        public void MarkAttendanceTest()
        {
            AttendanceService service       = new AttendanceService(new AttendanceContext());
            MarkAttendanceDTO attendanceDTO = new MarkAttendanceDTO();
            Guid attendanceMachineId        = Guid.Parse("3D15C1B9-9337-4341-223A-08D718A2C2AE");

            attendanceDTO.AttendanceEntry = AttendanceEntryType.Present;
            attendanceDTO.PersonId        = 123.ToString();
            attendanceDTO.Date            = DateTime.Now;
            service.MarkAttendance(attendanceMachineId, attendanceDTO);
        }
Example #5
0
        public async Task <OperationResult> MarkAttendanceOut(MarkAttendanceDTO dto)
        {
            var result = await _httpClient.PostAsJsonAsync("attendance/mark-out", dto);

            if (result.IsSuccessStatusCode)
            {
                return(new OperationResult(true));
            }

            return(new OperationResult(await result.Content.ReadAsStringAsync()));
        }
Example #6
0
        public void MarkAttendance(Guid machineId, MarkAttendanceDTO attendanceDTO)
        {
            /*
             * 1. Get the domain
             * 2. Let domain handle calls
             * 3. Persist the changes
             */
            AttendanceEvent attendanceMachine =
                context.AttendanceEvents.Find(machineId);

            attendanceMachine.Mark(attendanceDTO.PersonId, attendanceDTO.AttendanceEntry, attendanceDTO.Date);
            context.SaveChanges();
        }