public IActionResult Import() { //pobieram z magica bazę hoteli i pokoju dla każdego sezonu var hotelsInMagic = _hotelImportRepository.GetAllHotels(); foreach (var hotel in hotelsInMagic) { //ustalam jaki sezon jest aktualnie w pętli var season = Int32.Parse(hotel.DestinationSeasonName.Substring(hotel.DestinationSeasonName.Length - 4, 4)); //jeśli nie ma pokoju lub jest pokój ale nie ma sezonu to ma dodać rekord if ( (!(Equals(_hotelRepository.GetHotel(hotel.HotelCode, season)?.HotelCode, hotel.HotelCode))) || ((Equals(_hotelRepository.GetHotel(hotel.HotelCode, season)?.HotelCode, hotel.HotelCode)) && !(Equals(_hotelRepository.GetHotel(hotel.HotelCode, season)?.Season, season))) ) { var hotelModel = new HotelModel { HotelCode = hotel.HotelCode, Name = hotel.Name, Country = hotel.Country, Destination = hotel.Destination, Season = season }; List <SharedUnitModel> sharedUnit = new List <SharedUnitModel> { new SharedUnitModel(hotel.RoomCode, hotel.RoomDesc) }; hotelModel.MainRoom.Add( new MainRoomModel(hotel.RoomAllocCode, sharedUnit)); try { _hotelRepository.UploadHotels(hotelModel); } catch (Exception e) { throw new Exception("Błąd podczas zapisu elementu. " + e); } } //jeśli jest pokój i jest sezon ale nie ma głównego pokoju to ma dodać tylko główny i podrzędny pokój z rekordu else if ((Equals(_hotelRepository.GetHotel(hotel.HotelCode, season)?.HotelCode, hotel.HotelCode)) && Equals(_hotelRepository.GetHotel(hotel.HotelCode, season)?.Season, season) && !(Equals(_hotelRepository.GetMainRoom(hotel.RoomAllocCode, hotel.HotelCode, season)?.MainRoomCode, hotel.RoomAllocCode))) { List <SharedUnitModel> sharedUnit = new List <SharedUnitModel> { new SharedUnitModel(hotel.RoomCode, hotel.RoomDesc) }; var mainRoom = new MainRoomModel { HotelModelId = _hotelRepository.GetHotel(hotel.HotelCode, season).Id, MainRoomCode = hotel.RoomAllocCode, SharedUnit = sharedUnit }; try { _hotelRepository.UploadNewRooms(mainRoom); } catch (Exception e) { throw new Exception("Błąd podczas zapisu elementu. " + e); } } //jeśli jest hotel i sezon i główny pokój ale nie ma podrzędnego pokoju to ma tylko dodać z rekordu ten podrzędny pokój else if ((Equals(_hotelRepository.GetHotel(hotel.HotelCode, season)?.HotelCode, hotel.HotelCode)) && Equals(_hotelRepository.GetHotel(hotel.HotelCode, season)?.Season, season) && (Equals(_hotelRepository.GetMainRoom(hotel.RoomAllocCode, hotel.HotelCode, season)?.MainRoomCode, hotel.RoomAllocCode)) && !(Equals(_hotelRepository.GetSharedUnit(hotel.RoomCode, hotel.HotelCode, hotel.RoomAllocCode, season)?.SharedRoomCode, hotel.RoomCode))) { var sharedUnit = new SharedUnitModel { MainRoomModelId = _hotelRepository.GetMainRoom(hotel.RoomAllocCode, hotel.HotelCode, season).Id, SharedRoomName = hotel.RoomDesc, SharedRoomCode = hotel.RoomCode, }; try { _hotelRepository.UploadNewShareds(sharedUnit); } catch (Exception e) { throw new Exception("Błąd podczas zapisu elementu. " + e); } } else { continue; } } return(RedirectToAction("Index")); }
//Zapisuję do bazy tylko podrzędne pokoje bo hotel i główny pokój już mam public void UploadNewShareds(SharedUnitModel shared) { _context.Update(shared); _context.SaveChanges(); }