Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 public Punch(PunchViewModel viewModel)
 {
     EmployeeId = viewModel.EmployeeId;
     DateTime   = viewModel.DateTime;
     PunchType  = viewModel.PunchTypeEnum;
 }