Esempio n. 1
0
        /// <summary>
        /// List alle in der Datenbank Appointments heraus und fügt diese zu einer Liste hinzu
        /// </summary>
        /// <returns>Liste aller vorhandenen Appointments für Klasse</returns>
        public void ReadAppointments(SchoolClass schoolClass)
        {
            try
            {
                // Liste säubern
                schoolClass.AppointmentList.Clear();

                // Instanzierung
                DatabaseConnector Connect = new DatabaseConnector();
                Connect.OpenConnection();

                MySqlCommand command = Connect.Connection.CreateCommand();

                // command.CommandText = "SELECT * FROM Appointment WHERE Class_idClass=" + schoolClass.IdClass + ";";
                // Liest alle Appointments aus, welche nach dem heutigen Datum stattfinden und den  dazugehörigen creator, sowie den Raum in dem das Appointment stattfindet
                command.CommandText = "SELECT a.idAppointment, a.Title, a.Person_idPerson, a.Class_idClass, a.Room_idRoom, a.Start_Time, a.End_Time, a.Description, a.AllDayEvent, p.Name, p.Firstname, r.Roomname " +
                                      "FROM Person AS p, Appointment AS a, Room AS r " +
                                      "WHERE p.Role_idRole = 1 AND p.IdPerson = a.Person_idPerson AND  Class_idClass=" + schoolClass.IdClass + " AND r.idRoom = a.Room_idRoom AND a.Start_Time >= curdate();";

                MySqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    // Zeiten auslesen und Formatieren
                    DateTime endTimeObj   = reader.GetDateTime(6);
                    DateTime startTimeObj = reader.GetDateTime(5);


                    // Instanzierung Person
                    Person creator = new Person((int)reader.GetValue(2), (string)reader.GetValue(9), (string)reader.GetValue(10));

                    // Instanzierung Room
                    Room room = new Room((int)reader.GetValue(4), (string)reader.GetValue(11));

                    // Instanzierung Appointment
                    Appointment a = new Appointment((int)reader.GetValue(0), (string)reader.GetValue(1), room,
                                                    startTimeObj, endTimeObj, (string)reader.GetValue(8), (string)reader.GetValue(7), creator);

                    schoolClass.AppointmentList.Add(a);
                }

                reader.Close();

                //Connection schliessen
                Connect.CloseConnection();
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Nachdem der Benutzer eine Klasse ausgewählt hat, kann er ein neues Ereignis erstellen und die Ereignisse für die gewählte Klasse werden aufgelistet
        /// </summary>
        /// <param name="sender">Autogeneriert</param>
        /// <param name="args">Autogeneriert</param>
        async void OnClassSelectedClicked(object sender, EventArgs args)
        {
            try
            {
                //www.stackoverflow.com/questions/32313996/rendering-a-displayactionsheet-with-observablecollection-data-in-xamarin-cross-p?rq=1
                string action = await DisplayActionSheet("Klasse wählen:", "Cancel", null, classes.Select(SchoolClass => SchoolClass.ClassName).ToArray());

                // Hat der Benutzer die Klasse ausgewählt, werden die Ereignisse der Klasse aufgelistet
                if (action != "Cancel" && action != null)
                {
                    // Wenn der angemeldete Benutzer ein Lehrer ist, kann dieser ein neues Ereignis erstellen
                    if (App.UserLoggedIn.Role == 1 && ToolbarItems.FirstOrDefault(item => item.Text == "Ereignis erstellen") == null)
                    {
                        ToolbarItem toolBarItemCreateNewAppointment = new ToolbarItem
                        {
                            Text    = "Ereignis erstellen",
                            Order   = ToolbarItemOrder.Secondary,
                            Command = new Command(() => this.OnCallNewAppointmentPageClicked(null, null)),
                        };

                        this.ToolbarItems.Add(toolBarItemCreateNewAppointment);
                    }

                    // Nachdem eine Klasse ausgewählt wurde, kann der Benutzer die Daten aktualisieren
                    if (ToolbarItems.FirstOrDefault(item => item.Text == "Ereignisse aktualisieren") == null)
                    {
                        ToolbarItem toolBarItemRefresh = new ToolbarItem
                        {
                            Icon  = "refresh.png",
                            Text  = "Ereignisse aktualisieren",
                            Order = ToolbarItemOrder.Primary,

                            Command = new Command(() => this.OnRefreshClicked(null, null)),
                        };

                        this.ToolbarItems.Add(toolBarItemRefresh);
                    }

                    ToolbarItemClass.Text = action;
                    Selectedclass         = classes.Find(SchoolClass => SchoolClass.ClassName == action);
                    ShowAppointments();
                }
            }
            catch (Exception e)
            {
                await  DisplayAlert("Fehler", "Ein Fehler ist aufgetreten. Bitte wenden Sie sich an den Support: " + Environment.NewLine + e.Message, "OK");
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Konstruktor für aufruf nach NewAppointment
        /// </summary>
        /// <param name="selectedclass">Ausgewählte Klasse</param>
        public MainPage(SchoolClass selectedclass)
        {
            try
            {
                NavigationPage.SetHasBackButton(this, false);
                InitializeComponent();



                //Fill up Classes for Appointment
                DatabaseReader readerclasses = new DatabaseReader();
                classes = readerclasses.ReadClasses(App.UserLoggedIn.IdPerson);



                //Elemente für toolbar bereitstellen
                ToolbarItem toolBarItemCreateNewAppointment = new ToolbarItem
                {
                    Text    = "Ereignis erstellen",
                    Order   = ToolbarItemOrder.Secondary,
                    Command = new Command(() => this.OnCallNewAppointmentPageClicked(null, null)),
                };

                ToolbarItem toolBarItemRefresh = new ToolbarItem
                {
                    Icon    = "refresh.png",
                    Text    = "Ereignisse aktualisieren",
                    Order   = ToolbarItemOrder.Primary,
                    Command = new Command(() => this.OnRefreshClicked(null, null)),
                };

                this.ToolbarItems.Add(toolBarItemRefresh);
                this.ToolbarItems.Add(toolBarItemCreateNewAppointment);

                // name wieder auf vorherige ausgewählte klasse setzen
                ToolbarItemClass.Text = selectedclass.ClassName;
                Selectedclass         = selectedclass;
                ShowAppointments();
            }
            catch (Exception e)
            {
                DisplayAlert("Fehler", "Ein Fehler ist aufgetreten. Bitte wenden Sie sich an den Support: " + Environment.NewLine + e.Message, "OK");
            }
        }