private Reservation DeleteAbortedSlotsFromReservation(Reservation reservation) { Console.WriteLine("[Calling] DeleteAbortedSlotsFromReservation"); List<ReservationSlot> newSlotList = new List<ReservationSlot>(); foreach (ReservationSlot slot in reservation.getSlotList()) { if (slot.isAborted() == false) { newSlotList.Add(slot); } else Console.WriteLine("Slot " + slot.GetNumber() + " is aborted! Remove it"); } Reservation reservationWithoutAbortedSlots = new Reservation(reservation.getDescription(), reservation.getUserList(), newSlotList, reservation.getCreator(), reservation.getTicket()); return reservationWithoutAbortedSlots; }
/// <summary> /// Debug Method /// Prints reservation information /// </summary> /// <param name="reservation"></param> private void PrintReservation(Reservation reservation) { Console.WriteLine("[Calling] PrintReservation"); Console.WriteLine("RESERVATION"); if (reservation.getCreator() == null) { Console.WriteLine("[Error]: Creator is Null"); return; } if (reservation.getDescription() == null) { Console.WriteLine("[Error]: Description is null"); return; } Console.WriteLine("Description: " + reservation.getDescription()); if (reservation.getUserList().Count == 0) { Console.WriteLine("[Error]: User list is empty"); return; } Console.WriteLine("User List"); foreach (UserView u in reservation.getUserList()) { Console.WriteLine(u.getName()); } if (reservation.getSlotList().Count == 0) { Console.WriteLine("[Error]: Slot list is empty"); return; } foreach (ReservationSlot s in reservation.getSlotList()) { Console.WriteLine(s.ToString()); } }
/// <summary> /// Checks all the answers for each slot. If the answers were all Ack's them that slot changes /// its state to Tentatively-Booked. Otherwise, it changes its state to Aborted /// </summary> /// <param name="reservation"></param> /// <returns></returns> private Reservation ChangeReservationSlotStatus(Reservation reservation) { List<int> slotsWithNaks = AnyNAKReceived(threadResponses); Console.WriteLine("Print slot with naks"); foreach (int i in slotsWithNaks) { Console.WriteLine("Slot " + i); } foreach (ReservationSlot slot in reservation.getSlotList()) { if (slotsWithNaks.Contains(slot.GetNumber())) { slot.SetAborted(); } else slot.setTentativelyBooked(); } bool areAllTheSlotsAborted = true; foreach (ReservationSlot s in reservation.getSlotList()) { if (!s.isAborted()) { Console.WriteLine("Slot " + s.GetNumber() + " is not aborted!"); areAllTheSlotsAborted = false; break; } } if (areAllTheSlotsAborted) return null; return reservation; }