public GetHotelCompanyDto HotelCompanyToGetHotelCompanyDto(HotelCompany hotelCompany)
 {
     return(new GetHotelCompanyDto
     {
         Id = hotelCompany.Id,
         Name = hotelCompany.Name,
         Nip = hotelCompany.Nip,
         Street = hotelCompany.Street,
         BuildingNumber = hotelCompany.BuildingNumber,
         LocalNumber = hotelCompany.LocalNumber,
         PostalCode = hotelCompany.PostalCode,
         City = hotelCompany.City,
         PhoneNumber = hotelCompany.PhoneNumber
     });
 }
        public async Task <int> AddAsync()
        {
            var existingHotelCompany = await _db.HotelCompanies.FirstAsync();

            if (existingHotelCompany != null)
            {
                throw new InvalidOperationException("HotelCompany object is already created");
            }
            var hotelCompany = new HotelCompany();

            await _db.HotelCompanies.AddAsync(hotelCompany);

            await _db.SaveChangesAsync();

            return(hotelCompany.Id);
        }
Exemple #3
0
        public void SetHotelReservationToNewTravelPackage(TravelPackage travelPackage)
        {
            DateTime fromDay;
            DateTime toDay;

            if (travelPackage.FlightOrBus)
            {
                fromDay = travelPackage.ToGoFlight.ArrivedDate;
                toDay   = travelPackage.ToBackFlight.DepartureDate;
            }
            else
            {
                fromDay = travelPackage.ToGoBus.DateTimeArrival;
                toDay   = travelPackage.ToBackBus.DateTimeDeparture;
            }
            var SetReservationRequest = new ReservationsToTravelPackageRequest
            {
                HotelID    = travelPackage.Hotel.Id_Hotel,
                Date_start = fromDay,
                Date_end   = toDay,
                RoomCount  = travelPackage.ReservationAmount
            };

            //HotelCompany HotelsCompany = UnitOfWork.HotelCompanyRepository.GetByID(travelPackage.Hotel.Id_Hotel);
            HotelCompany HotelsCompany = new HotelCompany
            {
                APIURLToReserveRoomsToTravelPackage = "http://demo4736431.mockable.io/ReserveRoom"
            };
            var consumerHotels = new Consumer <List <SetReservationsToTravelPackageResponse> >();

            List <SetReservationsToTravelPackageResponse> getBookingsResponse = consumerHotels.ReLoadEntities(HotelsCompany.APIURLToReserveRoomsToTravelPackage, "GET", SetReservationRequest).Result;

            foreach (var item in getBookingsResponse)
            {
                var auxHotels = new ReservedRoom
                {
                    HotelID       = item.HotelID,
                    BookingID     = item.BookingID,
                    Hotel         = UnitOfWork.HotelRepository.GetByID(item.HotelID),
                    TravelPackage = travelPackage,
                    Available     = true
                };

                UnitOfWork.ReservedRoomRepository.Insert(auxHotels);
            }
            UnitOfWork.Save();
        }
Exemple #4
0
        public IEnumerable <AuxHotel> GetHotels(City Place, DateTime fromDay, DateTime toDay)
        {
            var city = UnitOfWork.CityRepository.Get(filter: p => p.Id_City == Place.Id_City,
                                                     includeProperties: "Province").FirstOrDefault();
            var province         = UnitOfWork.ProvinceRepository.Get(filter: p => p.Id_Province == Place.Province.Id_Province, includeProperties: "Country").FirstOrDefault();
            var getHotelsRequest = new GetHotelsRequest
            {
                City       = Place.Name,
                Region     = Place.Province.Name,
                Country    = province.Country.Name,
                Date_start = fromDay,
                Date_end   = toDay
            };

            //HotelCompany HotelsCompany = UnitOfWork.HotelCompanyRepository.Get().FirstOrDefault();
            HotelCompany HotelsCompany = new HotelCompany
            {
                APIURLToGetHotels = "http://demo4736431.mockable.io/GetHotels"
            };

            List <AuxHotel> ListOfHotels = new List <AuxHotel>();

            var consumerHotelss = new Consumer <List <GetHotelsResponse> >();

            List <GetHotelsResponse> getHotelsResponse = consumerHotelss.ReLoadEntities(HotelsCompany.APIURLToGetHotels, "GET", getHotelsRequest).Result;

            foreach (var item in getHotelsResponse)
            {
                var auxHotels = new AuxHotel
                {
                    Id_Hotel         = item.HotelID,
                    Name             = item.HotelName,
                    Price            = item.StandardRate,
                    NotReservedRooms = item.FreeRoomCount,
                    HotelCompany     = HotelsCompany
                };
                UnitOfWork.AuxHotelRepository.Insert(auxHotels);
                ListOfHotels.Add(auxHotels);
            }
            UnitOfWork.Save();
            return(ListOfHotels);
        }
        public async void ShouldThrowExceptionIfCompanyObjectExists()
        {
            //Arrange
            var context      = new iReceptionDbContext(DbOptions);
            var hotelCompany = new HotelCompany();
            var repository   = new HotelCompanyRepository(context);

            await context.AddAsync(hotelCompany);

            await context.SaveChangesAsync();

            //Act
            var expectedExceptionMessage = "HotelCompany object is already created";

            //Assert
            var actualException = await Assert.ThrowsAsync <InvalidOperationException>
                                      (async() => await repository.AddAsync());

            actualException.Message.Should().BeEquivalentTo(expectedExceptionMessage);
        }
        public async Task <int> UpdateAsync(HotelCompany hotelCompany)
        {
            var hotelCompanyToUpdate = await _db.HotelCompanies.FirstAsync();

            if (hotelCompanyToUpdate == null)
            {
                throw new KeyNotFoundException("There's no hotel company object to update");
            }

            foreach (PropertyInfo prop in hotelCompany.GetType().GetProperties())
            {
                var value = prop.GetValue(hotelCompany);
                if (value != null && prop.Name.ToLower() != "id")
                {
                    prop.SetValue(hotelCompanyToUpdate, value);
                }
            }

            _db.HotelCompanies.Update(hotelCompanyToUpdate);
            await _db.SaveChangesAsync();

            return(hotelCompanyToUpdate.Id);
        }
Exemple #7
0
        public IEnumerable <Hotel> GetHotels(City Place, DateTime fromDay, DateTime toDay)
        {
            var getHotelsRequest = new GetHotelsRequest
            {
                City       = Place.Name,
                Region     = Place.Province.Name,
                Country    = Place.Province.Country.Name,
                Date_start = fromDay,
                Date_end   = toDay
            };

            //HotelCompany HotelsCompany = UnitOfWork.HotelCompanyRepository.Get().FirstOrDefault();
            HotelCompany HotelsCompany = new HotelCompany
            {
                APIURLToGetHotels = "http://demo4736431.mockable.io/GetHotels"
            };

            List <Hotel> ListOfHotels = new List <Hotel>();

            var consumerHotelss = new Consumer <List <GetHotelsResponse> >();

            List <GetHotelsResponse> getHotelsResponse = consumerHotelss.ReLoadEntities(HotelsCompany.APIURLToGetHotels, "POST", getHotelsRequest).Result;

            foreach (var item in getHotelsResponse)
            {
                var auxHotels = new Hotel
                {
                    Id_Hotel         = item.HotelID,
                    Name             = item.HotelName,
                    Price            = item.StandardRate,
                    NotReservedRooms = item.FreeRoomCount
                };
                ListOfHotels.Add(auxHotels);
            }
            return(ListOfHotels);
        }