/// <summary>
        /// Updates a hotelroom in the database HotelRoom table,
        /// based on the hotelroom parameter.
        /// </summary>
        /// <param name="hotelroom">A unique hotelRoom object to update</param>
        /// <returns>An empty task object</returns>
        public async Task Update(HotelRoomDTO hotelRoomDto)
        {
            HotelRoom hotelRoom = ConvertDTOIntoEntity(hotelRoomDto);

            _context.Entry(hotelRoom).State = EntityState.Modified;
            await _context.SaveChangesAsync();
        }
Example #2
0
        public async Task <HotelRoomDTO> UpdateHotelRoom(int roomId, HotelRoomDTO hotelRoomDto)
        {
            try
            {
                if (roomId == hotelRoomDto.Id)
                {
                    // valid
                    var roomDetails = await _db.HotelRooms.FindAsync(roomId);

                    var room = _mapper.Map <HotelRoomDTO, HotelRoom>(hotelRoomDto, roomDetails);

                    room.UpdatedBy = "";
                    room.UpdatedAt = DateTime.Now;

                    var updatedRoom = _db.HotelRooms.Update(room);
                    await _db.SaveChangesAsync();

                    return(_mapper.Map <HotelRoom, HotelRoomDTO>(updatedRoom.Entity));
                }
                else
                {
                    // invalid
                    return(null);
                }
            }
            catch (Exception e)
            {
                return(null);
            }
        }
Example #3
0
        public HotelRoom ConvertFromDTO(HotelRoomDTO hotelRoomDTO)
        {
            HotelRoom hotelRoom = new HotelRoom()
            {
                HotelID     = hotelRoomDTO.HotelId,
                RoomNumber  = hotelRoomDTO.RoomNumber,
                RoomID      = hotelRoomDTO.RoomId,
                PetFriendly = hotelRoomDTO.PetFriendly,
                Rate        = hotelRoomDTO.Rate,
                Room        = new Room()
                {
                    ID     = hotelRoomDTO.Room.Id,
                    Name   = hotelRoomDTO.Room.Name,
                    Layout = (Layout)Enum.Parse(typeof(Layout), hotelRoomDTO.Room.Layout)
                             //line below not implementable
                             //RoomAmenities = await GetRoomAmenities(roomDTO.Id),
                             //dont know what HotelRoom is looking for
                }
                //requires the ConvertFromDTO method applicable on the interface
                //Room = _rooms.ConvertFromDTO(hotelRoomDTO.Room),

                //following line require ConvertFromDTO method for hotels
                //also requires it on the interface
                //Hotel = await _hotels.GetHotelByID(hotelRoomDTO.HotelId)

                //once these lines are re-added, the method will need to be changed to async and return a Task<HotelRoom>
                //all references to this method will also need to be await calls
            };

            return(hotelRoom);
        }
Example #4
0
        public async Task Delete(int hotelId, int roomNumber)
        {
            HotelRoomDTO room = await GetHotelRoom(hotelId, roomNumber);

            _context.Entry(room).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
            await _context.SaveChangesAsync();
        }
        public async Task <HotelRoomDTO> UpdateHotelRoom(int roomId, HotelRoomDTO hotelRoomDTO)
        {
            try
            {
                if (roomId == hotelRoomDTO.Id)
                {
                    var roomDetails = await _db.HotelRooms.FindAsync(roomId);

                    var room = _mapper.Map <HotelRoomDTO, HotelRoom>(hotelRoomDTO, roomDetails);

                    room.UpdatedBy   = "";
                    room.UpdatedDate = DateTime.Now;

                    var updatedRoom = _db.HotelRooms.Update(room);
                    await _db.SaveChangesAsync();

                    return(_mapper.Map <HotelRoom, HotelRoomDTO>(updatedRoom.Entity));
                }
                else
                {
                    return(null);
                }
            }
            catch
            {
                return(null);
            }
        }
Example #6
0
        /**
         * if unique returns null else returns the room object
         */
        public async Task <HotelRoomDTO> IsRoomUnique(string name, int roomId = 0)
        {
            try
            {
                if (roomId == 0)
                {
                    HotelRoom hotelRoom = await _db.HotelRooms.FirstOrDefaultAsync(x => x.Name.ToLower() == name.ToLower());

                    HotelRoomDTO hotelRoomDto = _mapper.Map <HotelRoom, HotelRoomDTO>(hotelRoom);
                    return(hotelRoomDto);
                }
                else
                {
                    // editing
                    HotelRoom hotelRoom = await _db.HotelRooms.FirstOrDefaultAsync(x => x.Name.ToLower() == name.ToLower() &&
                                                                                   x.Id != roomId);

                    HotelRoomDTO hotelRoomDto = _mapper.Map <HotelRoom, HotelRoomDTO>(hotelRoom);
                    return(hotelRoomDto);
                }
            }
            catch (Exception e)
            {
                return(null);
            }
        }
        public async Task <HotelRoomDTO> UpdateHotelRoom(int roomId, HotelRoomDTO hotelRoomDTO)
        {
            try
            {
                if (roomId == hotelRoomDTO.Id)
                {
                    HotelRoom roomDetails = await _db.HotelRooms.FindAsync(roomId);

                    //매개변수 안에 인자 하나만 넣으면 DTO에 있는 값들은 복사되고, 없는값들은 건들지도 안음.
                    //destination 에 실존하는 object를 넣어주면 dto에 있는 값들은 고대로 복사되고, DTO에 없는 값들은 destination 에 넣어준 object의 값들을 쓰게됨
                    HotelRoom room = _mapper.Map <HotelRoomDTO, HotelRoom>(hotelRoomDTO, roomDetails);
                    room.UpdatedBy   = "";
                    room.UpdatedDate = DateTime.Now;
                    var updatedRoom = _db.HotelRooms.Update(room);
                    await _db.SaveChangesAsync();

                    return(_mapper.Map <HotelRoom, HotelRoomDTO>(updatedRoom.Entity));
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        public async Task <HotelRoomDTO> Update(HotelRoomDTO room)
        {
            _context.Entry(room).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
            await _context.SaveChangesAsync();

            return(room);
        }
        public async Task <HotelRoomDTO> TranslateToDTO(HotelRoom hotelRoom)
        {
            List <AmenityDTO> amenityDTO = new List <AmenityDTO>();

            foreach (var amenity in hotelRoom.Room.RoomAmenities)
            {
                amenityDTO.Add(await _amenity.GetAmenity(amenity.AmenitiesID));
            }

            RoomDTO roomDTO = new RoomDTO()
            {
                ID        = hotelRoom.Room.Id,
                Name      = hotelRoom.Room.Name,
                Layout    = hotelRoom.Room.Layout,
                Amenities = amenityDTO
            };

            HotelRoomDTO hotelRoomDTO = new HotelRoomDTO()
            {
                HotelID     = hotelRoom.HotelID,
                RoomNumber  = hotelRoom.RoomNumber,
                PetFriendly = hotelRoom.PetFriendly,
                Rate        = hotelRoom.Rate,
                RoomID      = hotelRoom.RoomId,
                Room        = roomDTO
            };



            return(hotelRoomDTO);
        }
Example #10
0
        public async Task <HotelRoomDTO> GetHotelRoom(int hotelId, int roomNumber)
        {
            //look in the db on the room table where the id is
            //equal to the id that was brought in as an argument
            var hotelRoom = await _context.HotelRooms.Where(x => x.HotelId == hotelId && x.RoomNumber == roomNumber)
                            .Include(x => x.Hotel)
                            .Include(x => x.Room)
                            .ThenInclude(x => x.RoomAmenities)
                            .ThenInclude(x => x.Amenity)
                            .FirstOrDefaultAsync();

            List <RoomDTO> room = new List <RoomDTO>();

            foreach (var item in room)
            {
                room.Add(new RoomDTO {
                    Id = item.Id, Name = item.Name, Layout = item.Layout
                });
            }


            HotelRoomDTO dto = new HotelRoomDTO()
            {
                HotelId     = hotelId,
                RoomNumber  = roomNumber,
                Rate        = hotelRoom.Rate,
                PetFriendly = hotelRoom.PetFriendly,
                RoomId      = hotelRoom.RoomId,
                Room        = room,
            };

            return(dto);
        }
        public async Task <HotelRoomDTO> Create(HotelRoomDTO room, int hotelID)
        {
            _context.Entry(room).State = Microsoft.EntityFrameworkCore.EntityState.Added;
            await _context.SaveChangesAsync();

            return(room);
        }
        /// <summary>
        /// Deletes a HotelRoom from the HotelRoom table in the database,
        /// based on the hotelId and roomNumber parameters.
        /// </summary>
        /// <param name="hotelId">The unique hotelId to be deleted</param>
        /// <param name="roomNumber">The unique roomNumber to be deleted</param>
        /// <returns>The empty task object</returns>
        public async Task Delete(int hotelId, int roomNumber)
        {
            HotelRoomDTO hotelroomDto = await GetSingleHotelRoom(hotelId, roomNumber);

            HotelRoom hotelRoom = ConvertDTOIntoEntity(hotelroomDto);

            _context.Entry(hotelRoom).State = EntityState.Deleted;
            await _context.SaveChangesAsync();
        }
Example #13
0
        /// <summary>
        /// delete a hotel
        /// </summary>
        /// <param name="hotelID">the specific hotel</param>
        /// <param name="roomNumber">the specifc room in that hotel</param>
        /// <returns></returns>
        public async Task Delete(int hotelID, int roomNumber)
        {
            HotelRoomDTO hotelRoomdto = await GetHotelRoom(hotelID, roomNumber);

            HotelRoom hotelRoom = await _context.HotelRooms.FirstOrDefaultAsync(x => x.HotelsID == hotelRoomdto.HotelID && x.RoomNumber == hotelRoomdto.RoomNumber);

            _context.Entry(hotelRoom).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
            await _context.SaveChangesAsync();
        }
        /// <summary>
        /// Updates the HotelRoom in the database
        /// </summary>
        /// <param name="hotelRoom">The modified HotelRoom that is to replace the current HotelRoom</param>
        /// <returns>No Return</returns>
        public async Task <HotelRoomDTO> Update(HotelRoomDTO hotelRoomDTO)
        {
            HotelRoom hotelRoom = TranslateFromDTO(hotelRoomDTO);

            _context.Entry(hotelRoom).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(hotelRoomDTO);
        }
Example #15
0
        public async Task <ActionResult <HotelRoomDTO> > AddRoomToHotel(int hotelId, HotelRoomDTO hotelRoomDTO)
        {
            if (hotelId != hotelRoomDTO.HotelId)
            {
                return(BadRequest());
            }
            await _hotelRooms.Create(hotelRoomDTO, hotelId);

            return(Ok());
        }
Example #16
0
        /// <summary>
        /// Creates a hotel room
        /// </summary>
        /// <param name="hotelRoom"> hotelroom object</param>
        /// <param name="hotelId">hotel identifier</param>
        /// <returns> Task completion </returns>
        public async Task <HotelRoomDTO> Create(HotelRoomDTO hotelRoom, int hotelId)
        {
            hotelRoom.HotelId = hotelId;
            // adds to the database
            _context.Entry(hotelRoom).State = Microsoft.EntityFrameworkCore.EntityState.Added;
            // saves it on the db and the associated with an id
            await _context.SaveChangesAsync();

            return(hotelRoom);
        }
Example #17
0
        public async Task <IActionResult> PutHotelRoom(int hotelId, int roomNumber, HotelRoomDTO hotelRoom)
        {
            if (hotelId != hotelRoom.HotelID || roomNumber != hotelRoom.RoomNumber)
            {
                return(BadRequest());
            }
            await _hotelRoom.Update(hotelId, roomNumber, hotelRoom);

            return(Ok());
        }
Example #18
0
        public async Task <IActionResult> PutHotelRoom(HotelRoomDTO hotelRoomDTO, int hotelId, int roomNumber)
        {
            if (hotelId != hotelRoomDTO.HotelId || roomNumber != hotelRoomDTO.RoomNumber)
            {
                return(BadRequest());
            }
            var updatedHotelRoom = await _hotelRoom.Update(hotelRoomDTO);

            return(Ok(updatedHotelRoom));
        }
        public IActionResult GetHotelRoom(int id)
        {
            HotelRoomDTO room = roomsAdminService.FindRoom(id);

            if (room is null)
            {
                return(NotFound());
            }
            return(Ok(mapper.Map <HotelRoomModel>(room)));
        }
        /// <summary>
        /// Creates a new HotelRoom in the HotelRoom database table,
        /// based on the hotelRoom and a hotelId parameters.
        /// </summary>
        /// <param name="hotelRoom">The unique hotelRoom object to be created</param>
        /// <param name="hotelId">The unique hotelId used to create the hotelRoom</param>
        /// <returns>The hotelRoom object that was created</returns>
        public async Task <HotelRoomDTO> Create(HotelRoomDTO hotelroomDto, int hotelId)
        {
            HotelRoom hotelRoom = ConvertDTOIntoEntity(hotelroomDto);

            hotelRoom.HotelId = hotelId;
            _context.Entry(hotelRoom).State = EntityState.Added;
            await _context.SaveChangesAsync();

            return(hotelroomDto);
        }
        public async Task <IActionResult> PutHotelRoom(int hotelId, int roomNumber, HotelRoomDTO hotelRoomdto)
        {
            if (hotelId != hotelRoomdto.HotelId || roomNumber != hotelRoomdto.RoomNumber)
            {
                return(BadRequest());
            }
            //update
            await _hotelRoom.Update(hotelRoomdto);

            return(NoContent());
        }
        public void EditRoom(HotelRoomDTO room)
        {
            if (room is null)
            {
                throw new ArgumentNullException("room");
            }
            HotelRoom editRoom = Mapper.Map <HotelRoom>(room);

            UnitOfWork.HotelRooms.Update(editRoom);
            UnitOfWork.Save();
        }
        public async Task <IActionResult> PutHotelRoom(int HotelID, int roomNumber, HotelRoomDTO incomingData)
        {
            if (HotelID != incomingData.HotelID || roomNumber != incomingData.RoomNumber)
            {
                return(BadRequest());
            }

            var updatedHotelRoom = await _hotelRoom.UpdateHotelRoom(HotelID, roomNumber, incomingData);

            return(Ok(updatedHotelRoom));
        }
        public async Task <ActionResult <HotelRoomDTO> > DeleteHotelRoom(int hotelId, int roomNumber)
        {
            HotelRoomDTO hotelRoom = await _hotelRoom.Delete(hotelId, roomNumber);

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

            return(NoContent());
        }
        public void AddRoom(HotelRoomDTO room)
        {
            if (room is null)
            {
                throw new ArgumentNullException("room");
            }
            HotelRoom newRoom = Mapper.Map <HotelRoom>(room);

            UnitOfWork.HotelRooms.Insert(newRoom);
            UnitOfWork.Save();
        }
Example #26
0
        public async Task <ActionResult <HotelRoomDTO> > GetSingleHotelRoom(int hotelId, int roomNumber)
        {
            HotelRoomDTO hotelRoomDto = await _hotelRoom.GetSingleHotelRoom(hotelId, roomNumber);

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

            return(hotelRoomDto);
        }
        /// <summary>
        /// Deletes the Room attached to the Hotel
        /// </summary>
        /// <param name="hotelId">The Hotel that the room is attached to</param>
        /// <param name="roomNumber">The RoomNumber of the room to be deleted</param>
        /// <returns>No Return</returns>
        public async Task <HotelRoomDTO> Delete(int hotelId, int roomNumber)
        {
            HotelRoom hotelRoom = await _context.HotelRooms.FirstOrDefaultAsync(x => x.HotelID == hotelId);

            _context.Entry(hotelRoom).State = EntityState.Deleted;
            await _context.SaveChangesAsync();

            HotelRoomDTO hotelRoomDTO = await TranslateToDTO(hotelRoom);

            return(hotelRoomDTO);
        }
Example #28
0
        public async Task <IActionResult> PutHotelRoom(int hotelID, int roomNumber, HotelRoomDTO hotelRoom)
        {
            if (hotelID != hotelRoom.HotelID || roomNumber != hotelRoom.RoomNumber)
            {
                return(BadRequest());
            }

            await _context.Update(hotelRoom);

            return(NoContent());
        }
        public async Task <HotelRoomDTO> CreateHotelRoom(HotelRoomDTO hotelRoomDTO)
        {
            HotelRoom hotelRoom = _mapper.Map <HotelRoomDTO, HotelRoom>(hotelRoomDTO);

            hotelRoom.CreatedDate = DateTime.Now;
            hotelRoom.CreatedBy   = "";
            var addedHotelRoom = await _db.HotelRooms.AddAsync(hotelRoom);

            await _db.SaveChangesAsync();

            return(_mapper.Map <HotelRoom, HotelRoomDTO>(addedHotelRoom.Entity));;
        }
 public async Task <HotelRoomDTO> GetHotelRoom(int roomId)
 {
     try
     {
         HotelRoomDTO hotelRoom = _mapper.Map <HotelRoom, HotelRoomDTO>(await _db.HotelRooms.Include(x => x.HotelRoomImages).FirstOrDefaultAsync(x => x.Id == roomId));
         return(hotelRoom);
     }
     catch
     {
         return(null);
     }
 }