public void Update(UpdateReservationContract contract) { var reservationWithoutChanges = _ReservationRepository.Query().Where(r => r.Id == contract.Id).FirstOrDefault(); if (reservationWithoutChanges.SinceReservation != contract.SinceReservation) { contract.SinceReservation = contract.SinceReservation.ToLocalTime(); } if (reservationWithoutChanges.UntilReservation != contract.UntilReservation) { contract.UntilReservation = contract.UntilReservation.ToLocalTime(); } _log.LogInformation($"Validating contract {contract.Description}"); ValidateContract(contract); _log.LogInformation($"Mapping contract {contract.Description}"); var Reservation = _mapper.Map <Reservation>(contract); ValidateSchedule(Reservation); CheckOverlap(Reservation); Reservation.Recruiter = _ConsultantRepository.Query().Where(x => x.Id == contract.Recruiter).FirstOrDefault(); _ReservationRepository.Update(Reservation); _log.LogInformation($"Complete for {contract.Description}"); _unitOfWork.Complete(); }
private void ValidateContract(UpdateReservationContract contract) { try { _updateReservationContractValidator.ValidateAndThrow(contract, $"{ValidatorConstants.RULESET_DEFAULT}"); } catch (ValidationException ex) { throw new CreateContractInvalidException(ex.ToListOfMessages()); } }