コード例 #1
0
        public CreatedReservationContract Create(CreateReservationContract contract)
        {
            contract.SinceReservation = contract.SinceReservation.ToLocalTime();
            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();
            Reservation.Room      = _RoomRepository.Query().Where(x => x.Id == Reservation.RoomId).FirstOrDefault();

            var createdReservation = _ReservationRepository.Create(Reservation);

            AddModelToGoogleCalendar(Reservation);

            _log.LogInformation($"Complete for {contract.Description}");
            _unitOfWork.Complete();
            _log.LogInformation($"Return {contract.Description}");
            return(_mapper.Map <CreatedReservationContract>(createdReservation));
        }
コード例 #2
0
 private void ValidateContract(CreateReservationContract contract)
 {
     try
     {
         _createReservationContractValidator.ValidateAndThrow(contract,
                                                              $"{ValidatorConstants.RULESET_CREATE}");
     }
     catch (ValidationException ex)
     {
         throw new CreateContractInvalidException(ex.ToListOfMessages());
     }
 }