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()); }
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); }
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())); }
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(); }