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); }
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(); }
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); }
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); }