Beispiel #1
0
        public async Task PickUp(ReservationDto obj)
        {
            if (obj.State == ReservationState.Closed.ToString())
            {
                throw new InvalidOperationException("You can not contract a contracted reservation");
            }
            var reservation = Reservation.FromDto(obj);
            var car         = await _carService.GetByIdAsync(reservation.CarId);

            var carModel = await _carModelService.GetByIdAsync(car.CarModelid);

            var carCategory = await _carCategoryService.GetByIdAsync(carModel.CategoryId);

            reservation.DailyFee = carCategory.DailyFee;
            reservation.CalculateTotal();
            reservation.SetClosed();
            await _repository.UpdateAsync(reservation);

            var rentalContractDto = new RentalContractDto
            {
                Id             = Guid.NewGuid(),
                CarId          = reservation.CarId,
                CustomerId     = reservation.CustomerId,
                DurationInDays = reservation.DurationInDays,
                ReservationId  = reservation.Id,
                TotalCost      = reservation.TotalCost
            };
            await _rentalContractService.CreateRentalContract(rentalContractDto);
        }
Beispiel #2
0
        /// <summary>
        /// 修改合同
        /// </summary>
        /// <param name="dto"></param>
        public void Update(RentalContractDto dto)
        {
            var entity = _contractRepository.GetById(dto.ContractUUID);

            entity = dto.ToEntity(entity);
            _contractRepository.Update(entity);

            var person = _personRepository.GetById(dto.PersonUUID);

            person.IsRenter = true;
            _personRepository.Update(person);
        }
Beispiel #3
0
        /// <summary>
        /// 添加合同
        /// </summary>
        /// <param name="dto"></param>
        public void Create(RentalContractDto dto)
        {
            var entity = dto.MapTo <RentalContractEntity>();

            entity.ContractUUID = Guid.NewGuid().ToString("N");
            _contractRepository.Insert(entity);

            var person = _personRepository.GetById(dto.PersonUUID);

            person.IsRenter = true;
            _personRepository.Update(person);
        }
Beispiel #4
0
        [HttpPost, Route("add")]//, RequestAuthorize("sys:contract:add")
        public ResponseModel Create([FromBody] RentalContractDto model)
        {
            var contract = contractService.GetByRoomId(model.RoomUUID);

            if (contract != null)
            {
                // 如果现有的租房结束时间大于新租约的开始时间则提示租赁到期时间
                if (contract.DateTo >= model.DateFrom)
                {
                    return(new ResponseModel()
                    {
                        code = 1, msg = "房间到期时间为" + contract.DateTo.Value.ToString("yyyy-MM-dd") + ",请重新选择租期"
                    });
                }
            }

            contractService.Create(model);
            return(new ResponseModel());
        }
Beispiel #5
0
 public static RentalContractEntity ToEntity(this RentalContractDto model, RentalContractEntity destination)
 {
     return(model.MapTo(destination));
 }
Beispiel #6
0
 public static RentalContractEntity ToEntity(this RentalContractDto model)
 {
     return(model.MapTo <RentalContractDto, RentalContractEntity>());
 }
Beispiel #7
0
 [HttpPost, Route("update")] //, RequestAuthorize("sys:contract:update")
 public ResponseModel Update([FromBody] RentalContractDto model)
 {
     contractService.Update(model);
     return(new ResponseModel());
 }
Beispiel #8
0
 public async Task CreateRentalContract(RentalContractDto obj) => await _repository.AddAsync(_mapper.Map <RentalContractDto, RentalContract>(obj));