/// <summary>
        /// Adds or Edit a new reservation
        /// </summary>
        private void Save()
        {
            try
            {
                Data.Reservation reservation;

                if (!IsNewReservation)
                {
                    reservation = _reservationRepo.GetReservationById(ManipulatedReservation.ID);
                }
                else
                {
                    reservation = new Data.Reservation();
                }

                reservation.Table        = _tableRepo.GetTableById(SelectedTable.Id);
                reservation.AmountPeople = ManipulatedReservation.AmountPeople;
                reservation.LastName     = ManipulatedReservation.LastName;
                reservation.PhoneNumber  = ManipulatedReservation.PhoneNumber;
                reservation.StartTime    = ManipulatedReservation.StartTime;

                if (IsNewReservation)
                {
                    Reservations.Add(reservation);
                    _reservationRepo.AddReservation(reservation);
                    Cancel();
                    MessageHandler.InvokeSuccessMessage(Properties.Resources.Reservations, Properties.Resources.InfoReservationAdded);
                }
                else
                {
                    Reservations.Add(reservation);
                    _reservationRepo.UpdateReservation(reservation);
                    Cancel();
                    MessageHandler.InvokeSuccessMessage(Properties.Resources.Reservations, Properties.Resources.InfoReservationAdded);
                }
            }
            catch (ArgumentException e)
            {
                ErrorHandler.ThrowError(0, e.Message);
            }
            catch (Exception e)
            {
                ErrorHandler.ThrowError(0, e.Message);
            }
        }