public async Task <IActionResult> Create(string apartamentTitle, ApartmentRoom apartmentRoom) { var apartament = _context.Apartment.SingleOrDefault(x => x.Title == apartamentTitle); apartmentRoom.ApartmentId = apartament.Id; _context.Add(apartmentRoom); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index), new { apartment = apartmentRoom.ApartmentId })); }
public async Task <IActionResult> Edit(string apartmentTitle, ApartmentRoom apartmentRoom) { try { var apartment = _context.Apartment.SingleOrDefault(x => x.Title == apartmentTitle); apartmentRoom.ApartmentId = apartment.Id; _context.Update(apartmentRoom); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ApartmentRoomExists(apartmentRoom.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index), new { apartment = apartmentRoom.ApartmentId })); }
public async Task <IActionResult> Create(AccomodationInfo accomodationInfo) { var accomodations = _context.AccomodationInfo.Where(a => a.TripId == accomodationInfo.TripId).ToList(); var officeDestinationId = _context.Trip.Single(t => t.Id == accomodationInfo.TripId).ToOffice; var apartmentId = _context.Apartment.Single(a => a.OfficeId == officeDestinationId).Id; var apartmentRooms = _context.ApartmentRoom.Where(a => a.ApartmentId == apartmentId).ToList(); var trip = _context.Trip.Single(t => t.Id == accomodationInfo.TripId); var tripParticipators = _context.TripParticipators.Where(t => t.TripId == trip.Id).ToList(); List <ApartmentRoom> emptyRooms = GetAvailableRooms(apartmentRooms, accomodationInfo.Start, accomodationInfo.End); if (accomodationInfo.Cost != 0 || accomodationInfo.HotelName != null) { foreach (TripParticipator tripParticipator in tripParticipators) { var accomodation = accomodations.Single(a => a.UserId == tripParticipator.UserId); accomodation.TripId = trip.Id; accomodation.UserId = tripParticipator.UserId; accomodation.ApartmentRoomId = 0; accomodation.Start = accomodationInfo.Start; accomodation.End = accomodationInfo.End; accomodation.HotelName = accomodationInfo.HotelName; accomodation.Cost = accomodationInfo.Cost; accomodation.AccomodationStatus = AccomodationStatusEnum.Booked; _context.Update(accomodation); } _context.SaveChanges(); return(RedirectToAction("Details", "Trip", new { id = accomodationInfo.TripId })); } if (tripParticipators.Count > emptyRooms.Count) { // kambariu maziau nei keliautoju, automatiskai grizt ir uzsakyt viesbuti ViewBag.HotelRequired = true; return(RedirectToAction("Create", "Accomodation", new { id = accomodationInfo.Id, isHotelRequired = true, start = accomodationInfo.Start, end = accomodationInfo.End })); } int i = 0; foreach (TripParticipator tripParticipator in tripParticipators) { var accomodation = accomodations.Single(a => a.UserId == tripParticipator.UserId); ApartmentRoom apRoom = emptyRooms[i]; accomodation.TripId = trip.Id; accomodation.UserId = tripParticipator.UserId; accomodation.ApartmentRoomId = apRoom.Id; accomodation.HotelName = null; accomodation.Cost = 0; accomodation.Start = accomodationInfo.Start; accomodation.End = accomodationInfo.End; accomodation.AccomodationStatus = AccomodationStatusEnum.Booked; _context.Update(accomodation); i++; } _context.SaveChanges(); return(RedirectToAction("Details", "Trip", new { id = accomodationInfo.TripId })); //return RedirectToAction("a"); }