public async Task <ActionResult> Post(PunchDto punchDto) { try { var validator = new PunchDtoValidator(); var result = validator.Validate(punchDto); if (!result.IsValid) { return(BadRequest(result.Errors)); } var punchViewModel = new PunchViewModel { EmployeeId = punchDto.EmployeeId, EmployeeName = punchDto.EmployeeName, PunchType = punchDto.PunchType }; await _punchService.Register(punchViewModel); return(Ok()); } catch (Exception ex) { return(BadRequest(ex)); } }
public Task Register(PunchViewModel punchViewModel) { var punch = new Punch(punchViewModel); punch.DateTime = DateTime.UtcNow; var lastPunchToday = _punchRepository.GetLastPunchForToday(punchViewModel.EmployeeId).Result; if (lastPunchToday == null) { punch.PunchType = PunchType.PunchIn; } else { punch.PunchType = lastPunchToday.PunchType == PunchType.PunchIn ? PunchType.PunchOut : PunchType.PunchIn; } var validator = new PunchValidator(); var result = validator.Validate(punch); if (!result.IsValid) { var errorsMsg = string.Join(',', result.Errors.Select(x => x.ErrorMessage)); throw new ValidationException(errorsMsg); } return(_punchRepository.Save(punch)); }
public Punch(PunchViewModel viewModel) { EmployeeId = viewModel.EmployeeId; DateTime = viewModel.DateTime; PunchType = viewModel.PunchTypeEnum; }