Ejemplo n.º 1
0
        /// <summary>
        /// Async method that calls the async delete method from the persistancyService that deletes the selected booking from the database
        /// </summary>
        public static async Task CancelBookingMethodAsync()
        {
            // Checks if the user wants to delete the booking, or not
            var result = await DialogHandler.GenericYesNoDialog("Er du sikker på du vil Aflyse denne bookning?\nTilhørende tavlebookings vil også blive Aflyst.\nDer vil blive tilsendt kvittering på denne aflysning på din mail", "Aflys Bookning?", "Ja, Aflys booking", "Fortryd");

            // If user wants to delete the booking.
            if (result)
            {
                var query = (from q in BookingCatalogSingleton.Instance.Bookings
                             where q.Booking_Id == Reference.SelectedBooking.Booking_Id
                             select q).ToList();
                foreach (var item in query)
                {
                    BookingCatalogSingleton.Instance.Bookings.Remove(item);
                }

                // The async delete method from PersistancyService.
                PersistancyService.DeleteFromDatabaseAsync("Bookings", Reference.SelectedBooking.Booking_Id);
                MailService.MailSenderAsync(LoginHandler.SelectedUser.User_Email, "Kvittering på aflysning af booking", $"Du har aflyst din bookning for {Reference.SelectedBooking.RoomName} " +
                                            $"d. {Reference.SelectedBooking.Date.ToString("dd/MM/yyyy")} " +
                                            $"mellem {new DateTime(Reference.SelectedBooking.BookingStart.Ticks).ToString("HH:mm")} og {new DateTime(Reference.SelectedBooking.BookingEnd.Ticks).ToString("HH:mm")}.", true);
                // Deletes the selected object from the singleton observable collection
                Reference.AllUserBookingsFromSingleton.Remove(Reference.SelectedBooking);
                // Update the view
                Reference.ElementIsChosenVisibility  = Visibility.Collapsed;
                Reference.NoElementsChosenVisibility = Visibility.Visible;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Async method that calls the async delete method from the persistancyService that deletes the selected booking's Tavle booking from the database
        /// </summary>
        public static async Task CancelTavleBookingMethodAsync()
        {
            // Checks if the user wants to delete the TavleBooking, or not
            var result = await DialogHandler.GenericYesNoDialog("Er du sikker på du vil Aflyse tavlen for denne bookning?\nDin Booking på rummet vil ikke blive slettet\nEn kvittering vil blive tilsendt for aflysning af denne tavle tid", "Aflys Tavle?", "Ja, Aflys Tavle", "Fortryd");

            // If user wants to delete the booking.
            if (result)
            {
                // Try and run the code, if the code cant run, catch the exception and notify the user that something went wrong.
                try
                {
                    // Gets the selected booking's tavlebooking as an object.
                    TavleBooking _selectedTavleBooking = TavleBookingCatalogSingleton.Instance.TavleBookings.Single(t => t.Booking_Id == Reference.SelectedBooking.Booking_Id);
                    // The async delete method from PersistancyService.
                    PersistancyService.DeleteFromDatabaseAsync("TavleBookings", _selectedTavleBooking.Tavle_Id);
                    // Deletes the selected object from the singleton observable collection, which in turn updates the view.
                    TavleBookingCatalogSingleton.Instance.TavleBookings.Remove(_selectedTavleBooking);

                    MailService.MailSenderAsync(LoginHandler.SelectedUser.User_Email, "Kvittering på aflysning af tavle booking", $"Du har aflyst din tavletid for rum: {Reference.SelectedBooking.RoomName} " +
                                                $"d. {Reference.SelectedBooking.Date.ToString("dd/MM/yyyy")} " +
                                                $"mellem {new DateTime(_selectedTavleBooking.Time_start.Ticks).ToString("HH:mm")} og {new DateTime(_selectedTavleBooking.Time_end.Ticks).ToString("HH:mm")}.", true);
                    //Update the viewpage
                    Reference.AflysTavleBtnVisibility = Visibility.Collapsed;
                    Reference.BookTavleBtnVisibility  = Visibility.Visible;
                    Reference.SelectedTavleBooking    = null;
                    Reference.CheckIfTavleBookingExists();
                }
                catch (Exception)
                {
                    // Informs the user that something went wrong with the deletion of a tavle booking
                    DialogHandler.Dialog("Noget gik galt med aflysning af tavle, kontakt Zealands IT-Helpdesk for mere information.", "Fejl i aflysning");
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// This method replaces every booking on a room in between the selected timeend and timestart
        /// </summary>
        /// <returns></returns>
        public async Task TeacherSnatchRoom()
        {
            var query = (from b in BookingCatalogSingleton.Instance.Bookings
                         where b.Room_Id == TCPREF.BookingIsSelected.Room_Id && TCPREF.BookingIsSelected.Date.Date == b.Date.Date && b.Time_end >= TCPREF.InputTimeStart && b.Time_start <= TCPREF.InputTimeEnd
                         select b).ToList();

            if (query.Count > 0)
            {
                foreach (var item in query)
                {
                    PersistancyService.DeleteFromDatabaseAsync("Bookings", item.Booking_Id);

                    await GetMailToUser(item.User_Id, "En lærer aflyste din booking", $"Din booking den " + $"{TCPREF.BookingIsSelected.Date.ToString("dd/MM/yyyy")} fra " + $"{new DateTime(TCPREF.BookingIsSelected.BookingStart.Ticks).ToString("HH:mm")} til " + $"{new DateTime(TCPREF.BookingIsSelected.BookingEnd.Ticks).ToString("HH:mm")} i rum {TCPREF.BookingIsSelected.RoomName} " + $"er blevet aflyst af {LoginHandler.SelectedUser.User_Name}, vi beklager ulejligheden. " + $"Du er selvfølgelig velkommen til at booke et nyt rum i appen.", true);
                }
                await PersistancyService.SaveInsertAsJsonAsync(new Booking
                {
                    Date          = TCPREF.BookingIsSelected.Date.Date,
                    Room_Id       = TCPREF.BookingIsSelected.Room_Id,
                    TavleBookings = null,
                    Time_start    = new TimeSpan(TCPREF.InputTimeStart.Hours, TCPREF.InputTimeStart.Minutes, 0),
                    Time_end      = new TimeSpan(TCPREF.InputTimeEnd.Hours, TCPREF.InputTimeEnd.Minutes, 0),
                    User_Id       = LoginHandler.CurrentUserId
                }, "Bookings");

                MailService.MailSenderAsync(LoginHandler.SelectedUser.User_Email, "Kvittering på booking", $"Du har booket {TCPREF.BookingIsSelected.RoomName} " + $"d. {TCPREF.BookingIsSelected.Date.ToString("dd/MM/yyyy")} " + $"mellem {new DateTime(TCPREF.BookingIsSelected.BookingStart.Ticks).ToString("HH:mm")} og {new DateTime(TCPREF.BookingIsSelected.BookingEnd.Ticks).ToString("HH:mm")}.", true);
                ResetList();
                DialogHandler.Dialog("Din booking er nu oprettet. God dag!", "Booking Oprettet!");
            }

            if (query.Count <= 0)
            {
                var result = await DialogHandler.GenericYesNoDialog(
                    "Der er ikke nogen booking på dit valgte tidspunkt, er du sikker på at du valgte det rigtige tidspunkt?",
                    "Ingen booking på valgte tidspunkt", "Opret Ny booking i stedet", "Indtast tid igen");

                if (result)
                {
                    await PersistancyService.SaveInsertAsJsonAsync(new Booking
                    {
                        Date          = TCPREF.BookingIsSelected.Date.Date,
                        Room_Id       = TCPREF.BookingIsSelected.Room_Id,
                        TavleBookings = null,
                        Time_start    = new TimeSpan(TCPREF.InputTimeStart.Hours, TCPREF.InputTimeStart.Minutes, 0),
                        Time_end      = new TimeSpan(TCPREF.InputTimeEnd.Hours, TCPREF.InputTimeEnd.Minutes, 0),
                        User_Id       = LoginHandler.CurrentUserId
                    }, "Bookings");

                    MailService.MailSenderAsync(LoginHandler.SelectedUser.User_Email, "Kvittering på booking", $"Du har booket {TCPREF.BookingIsSelected.RoomName} " + $"d. {TCPREF.BookingIsSelected.Date.ToString("dd/MM/yyyy")} " + $"mellem {new DateTime(TCPREF.BookingIsSelected.BookingStart.Ticks).ToString("HH:mm")} og {new DateTime(TCPREF.BookingIsSelected.BookingEnd.Ticks).ToString("HH:mm")}.", true);
                    ResetList();
                    DialogHandler.Dialog("Din booking er nu oprettet. God dag!", "Booking Oprettet!");
                }
            }
        }