Esempio n. 1
0
        public static DateTime GetRentalEndDate(SaveRentalDto saveRentalDto, DateTime startDate)
        {
            var numberOfMonths = saveRentalDto.Months;
            var endDate        = startDate.AddMonths(numberOfMonths);

            return(endDate);
        }
Esempio n. 2
0
        public IHttpActionResult CreateRental(SaveRentalDto saveRentalDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var room = _unitOfWork.Rooms.GetRoom(saveRentalDto.RoomId);

            if (room == null)
            {
                return(NotFound());
            }

            if (room.IsCurrentlyRented)
            {
                return(BadRequest("Room is already rented out"));
            }

            var tenant = _unitOfWork.Tenants.GetTenant(saveRentalDto.TenantId);

            if (tenant == null)
            {
                return(NotFound());
            }

            var startDate = DateTimeExtensions.ConvertToDateTime(saveRentalDto.StartDate);
            var endDate   = DateTimeExtensions.GetRentalEndDate(saveRentalDto, startDate);

            var rentalFromMap = Mapper.Map <SaveRentalDto, Rental>(saveRentalDto);
            var userName      = User.Identity.Name;
            var newRental     = new Rental(rentalFromMap.RoomId, rentalFromMap.TenantId, startDate, endDate, userName);

            room.SetOccupied();

            _unitOfWork.Rentals.Add(newRental);
            _unitOfWork.Complete();

            return(Ok());
        }