コード例 #1
0
        public Hotel Build()
        {
            HotelValidatorCommand command = CommandFactory.HotelValidatorCommand(_hotel);

            command.Execute();
            return(_hotel);
        }
コード例 #2
0
 public void ValidHotelCommand_ExceptionThrown()
 {
     Assert.Throws <RequiredAttributeException>(() =>
     {
         HotelValidatorCommand command = CommandFactory.HotelValidatorCommand(null);
         command.Execute();
     });
 }
コード例 #3
0
 public void ValidHotelCommand_NoExceptionThrown()
 {
     Assert.DoesNotThrow(() =>
     {
         HotelValidatorCommand command = CommandFactory.HotelValidatorCommand(_hotel);
         command.Execute();
     });
 }
コード例 #4
0
 public void ValidHotelCommand_LocationExceptionThrown()
 {
     Assert.Throws <RequiredAttributeException>(() =>
     {
         _hotel.Location = null;
         HotelValidatorCommand command = CommandFactory.HotelValidatorCommand(_hotel);
         command.Execute();
     });
 }
コード例 #5
0
        /// <summary>
        ///     Metodo para crear un DTO a partir de una entidad
        /// </summary>
        /// <param name="entity">entidad de tipo hotel a ser convertida</param>
        /// <returns>un Hotel de tipo DTO</returns>
        /// <exception cref="RequiredAttributeException">Algun atributo requerido estaba como null</exception>
        /// <exception cref="InvalidAttributeException">Algun atributo tenia un valor invalido</exception>
        public HotelDTO CreateDTO(Hotel entity)
        {
            HotelValidatorCommand command = CommandFactory.HotelValidatorCommand(entity);

            command.Execute();
            Hotel    hotel    = (Hotel)entity;
            HotelDTO HotelDTO = DTOFactory.CreateHotelDTO(hotel.Id, hotel.Name, hotel.AmountOfRooms,
                                                          hotel.RoomCapacity, hotel.IsActive, hotel.AddressSpecification,
                                                          hotel.PricePerRoom, hotel.Website, hotel.Phone, hotel.Picture,
                                                          hotel.Stars, hotel.Location.Id);

            return(HotelDTO);
        }
コード例 #6
0
        /// <summary>
        ///     Metodo para crear una lista de DTO a partir de una lista de hoteles entidad
        /// </summary>
        /// <param name="entities">ista entidad de tipo hotel a ser convertida</param>
        /// <returns>Lista de Hoteles de tipo DTO</returns>
        /// <exception cref="RequiredAttributeException">Algun atributo requerido estaba como null</exception>
        /// <exception cref="InvalidAttributeException">Algun atributo tenia un valor invalido</exception>
        public List <HotelDTO> CreateDTOList(List <Hotel> entities)
        {
            List <HotelDTO> dtos = new List <HotelDTO>();

            foreach (Entity entity in entities)
            {
                Hotel hotel = (Hotel)entity;
                HotelValidatorCommand command = CommandFactory.HotelValidatorCommand(hotel);
                command.Execute();
                dtos.Add(DTOFactory.CreateHotelDTO(hotel.Id, hotel.Name, hotel.AmountOfRooms,
                                                   hotel.RoomCapacity, hotel.IsActive, hotel.AddressSpecification,
                                                   hotel.PricePerRoom, hotel.Website, hotel.Phone, hotel.Picture,
                                                   hotel.Stars, hotel.Location.Id));
            }
            return(dtos);
        }
コード例 #7
0
        /// <summary>
        ///     Metodo para actualizar los datos de un hotel.
        /// </summary>
        /// <param name="id">ID del hotel a actualizar</param>
        /// <param name="newData">
        ///     Objeto Hotel de donde se obtendran los datos para la actualizacion.
        ///     Este objeto debe pasar la validacion del metodo <see cref="Hotel.Validate()" />
        ///     de manera que si solo se quiere actualizar un par de campos, igual se debe que mandar
        ///     el objeto completo y valido, sin cambiar los atributos que no quieras actualizar.
        /// </param>
        /// <returns>Objeto Hotel con los campos actualizados</returns>
        /// <exception cref="RequiredAttributeException">Algun atributo requerido estaba como null</exception>
        /// <exception cref="InvalidAttributeException">Algun atributo tenia un valor invalido</exception>
        /// <exception cref="DatabaseException">
        ///     Lanzada si ocurre un fallo al ejecutar la funcion en la bse de
        ///     datos
        /// </exception>
        public Hotel UpdateHotel(int id, Hotel newData)
        {
            HotelValidatorCommand command = CommandFactory.HotelValidatorCommand(newData);

            command.Execute();
            PgConnection.Instance.ExecuteFunction(
                SP_UPDATE,
                id,
                newData.Name,
                newData.AmountOfRooms,
                newData.RoomCapacity,
                newData.IsActive,
                newData.AddressSpecification,
                newData.PricePerRoom,
                newData.Website ?? "",
                newData.Phone ?? "",
                newData.Picture ?? "",
                newData.Stars,
                newData.Location.Id
                );
            return(GetHotelById(id));
        }
コード例 #8
0
        /// <summary>
        ///     Metodo para persistir un Hotel.
        /// </summary>
        /// <param name="hotel">Datos a ser guardados</param>
        /// <returns>ID del registro del hotel creado en la base de datos</returns>
        /// <exception cref="RequiredAttributeException">Algun atributo requerido estaba como null</exception>
        /// <exception cref="InvalidAttributeException">Algun atributo tenia un valor invalido</exception>
        public int AddHotel(Hotel hotel)
        {
            HotelValidatorCommand command = CommandFactory.HotelValidatorCommand(hotel);

            command.Execute();
            var table = PgConnection.Instance.ExecuteFunction(
                SP_ADD_HOTEL,
                hotel.Name,
                hotel.AmountOfRooms,
                hotel.RoomCapacity,
                hotel.IsActive,
                hotel.AddressSpecification,
                hotel.PricePerRoom,
                hotel.Website ?? "",
                hotel.Phone ?? "",
                hotel.Picture ?? "",
                hotel.Stars,
                hotel.Location.Id
                );
            var savedId = Convert.ToInt32(table.Rows[0][0]);

            return(savedId);
        }