public async Task <IActionResult> Edit(int id, GuestReservation guestReservation) { if (id != guestReservation.Id) { ViewBag.ErrorMessage = "لايوجد بيانات"; return(View("NotFound")); } if (ModelState.IsValid) { try { _repository.Update <GuestReservation>(guestReservation); await _repository.SavaAll(); } catch (DbUpdateConcurrencyException) { if (_repository.GetBank(guestReservation.Id) == null) { ViewBag.ErrorMessage = "لايوجد بيانات"; return(View("NotFound")); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["MGuideId"] = new SelectList(await _repository.GetGuides(), "Id", "Name", guestReservation.MGuideId); ViewData["SheikhId"] = new SelectList(await _repository.GetSheikhs(), "Id", "Name", guestReservation.SheikhId); return(View(guestReservation)); }
public async Task <IActionResult> Create(GuestReservation guestReservation) { if (ModelState.IsValid) { _repository.Add <GuestReservation>(guestReservation); await _repository.SavaAll(); return(RedirectToAction(nameof(Index))); } ViewData["MGuideId"] = new SelectList(await _repository.GetGuides(), "Id", "Name", guestReservation.MGuideId); ViewData["SheikhId"] = new SelectList(await _repository.GetSheikhs(), "Id", "Name", guestReservation.SheikhId); return(View(guestReservation)); }
public async Task <ProcessResult> CreateReservationAsync(Reservation model, IList <Guest> guestModel) { Func <Task> action = async() => { model.InitDate = new DateTime(model.InitDate.Year, model.InitDate.Month, model.InitDate.Day, 9, 0, 0); model.EndDate = new DateTime(model.EndDate.Year, model.EndDate.Month, model.EndDate.Day, 8, 59, 59); if (model.EndDate < model.InitDate) { throw new InvalidOperationException("La fecha de terminación no puede ser antes de la fecha de inicio"); } IQueryable <Reservation> q = context.Reservations; q = q.Where(r => r.RoomID == model.RoomID && !(r.EndDate.CompareTo(model.InitDate) < 0 || model.EndDate.CompareTo(r.InitDate) < 0)); int cnt = await q.CountAsync(); if (cnt > 0) { throw new InvalidOperationException("Existe un conflicto con otra reservación"); } var ReservationEntity = await GetOrCreateEntityAsync(context.Reservations, x => x.Id == model.Id); var Reservation = ReservationEntity.result; Reservation.Details = model.Details; Reservation.InitDate = model.InitDate; Reservation.EndDate = model.EndDate; Reservation.AgencyID = model.AgencyID; Reservation.RoomID = model.RoomID; Reservation.CheckIn = model.CheckIn; Reservation.CheckOut = model.CheckOut; foreach (var item in guestModel) { GuestReservation gr = new GuestReservation(); gr.GuestId = item.Id; gr.ReservationId = Reservation.Id; await context.GuestReservations.AddAsync(gr); } await context.SaveChangesAsync(); }; return(await Process.RunAsync(action)); }
public void SaveReservationWithGuests(Reservation reservation, List <Guest> guests) { dbContext.Reservations.Add(reservation); dbContext.SaveChanges(); foreach (var guest in guests) { dbContext.Guests.Add(guest); dbContext.SaveChanges(); var reservationGuest = new GuestReservation(guest.Id, reservation.Id); dbContext.GuestReservations.Add(reservationGuest); } dbContext.SaveChanges(); }
public GuestReservation Create(GuestReservation guestReservation) { _unitOfWork.GuestReservationRepository.Insert(guestReservation); _unitOfWork.Save(); return(guestReservation); }
public void Delete(GuestReservation guestReservation) { _unitOfWork.GuestReservationRepository.Delete(guestReservation); _unitOfWork.Save(); }
public GuestReservation Update(GuestReservation guestReservation) { _unitOfWork.GuestReservationRepository.Update(guestReservation); _unitOfWork.Save(); return(guestReservation); }