예제 #1
0
        public void Load(SqliteConnection conn, string id)
        {
            //Debug.WriteLine("PersoonModel.Load(" + id + ")");

            bool shouldClose = false;

            // clear last connection to preventcirculair call to update
            _conn = null;

            // Is the database already open?
            if (conn.State != ConnectionState.Open)
            {
                shouldClose = true;
                conn.Open();
            }

            // Execute query
            using (var command = conn.CreateCommand())
            {
                // Create new command
                command.CommandText = "SELECT ID, Achternaam, Adres, Email, " +
                                      "Geboortedatum, Imagepath, Initialen, Mobiel, Postcode, " +
                                      "Telefoon, Tussenvoegsel, Voornamen, Woonplaats FROM Persoon WHERE ID = @COL1";

                // Populate with data from the record
                command.Parameters.AddWithValue("@COL1", id);

                using (var reader = command.ExecuteReader())
                {
                    var r = reader.HasRows;

                    while (reader.Read())
                    {
                        // Pull values back into class
                        ID            = (string)reader["ID"];
                        Achternaam    = (string)reader["Achternaam"];
                        Adres         = (string)reader["Adres"];
                        Email         = (string)reader["Email"];
                        Geboortedatum = AppDelegate.DateTimeToNSDate((DateTime)reader["Geboortedatum"]);
                        Imagepath     = (string)reader["Imagepath"];
                        Initialen     = (string)reader["Initialen"];
                        Mobiel        = (string)reader["Mobiel"];
                        Postcode      = (string)reader["Postcode"];
                        Telefoon      = (string)reader["Telefoon"];
                        Tussenvoegsel = (string)reader["Tussenvoegsel"];
                        Voornamen     = (string)reader["Voornamen"];
                        Woonplaats    = (string)reader["Woonplaats"];

                        // ook de 'gevolgde opleidingen' laden
                        LoadGevolgdeOpleidingen(conn, ID);

                        // ook de 'aankopen' laden
                        LoadAankopen(conn, ID);

                        // ook de 'onderhoud' laden
                        //						var onderhoudArray = new OnderhoudArrayController();
                        //						onderhoudArray.LoadOnderhoud(conn, ID);
                        //						InOnderhoud = onderhoudArray.Onderhoud;

                        // ook de 'clubs' laden
                        //						var lidmaatschappenArray = new LidmaatschappenArrayController();
                        //						lidmaatschappenArray.LoadLidmaatschappen(conn, ID);
                        //						Lidmaatschappen = lidmaatschappenArray.Lidmaatschappen;
                    }
                }
            }

            ////Debug.WriteLine("Joost: " + GevolgdeOpleidingenString);

            if (shouldClose)
            {
                conn.Close();
            }

            // Save last connection
            _conn = conn;
        }
        public override NSView GetViewForItem(NSTableView tableView, NSTableColumn tableColumn, nint row)
        {
            // This pattern allows you reuse existing views when they are no-longer in use.
            // If the returned view is null, you instance up a new view
            // If a non-null view is returned, you modify it enough to reflect the new data
            NSTextField view = (NSTextField)tableView.MakeView(CellIdentifier, this);

            if (view == null)
            {
                view                 = new NSTextField();
                view.Identifier      = CellIdentifier;
                view.BackgroundColor = NSColor.White;
                view.Bordered        = false;
                view.Selectable      = false;
                view.Editable        = false;
            }

            // Setup view based on the column selected
            switch (tableColumn.Title)
            {
            case "Achternaam":
                view.StringValue  = DataSource.Personen[(int)row].Achternaam;
                tableColumn.Width = 140;
                break;

            case "Adres":
                view.StringValue  = DataSource.Personen[(int)row].Adres;
                tableColumn.Width = 200;
                break;

            case "Email":
                view.StringValue  = DataSource.Personen[(int)row].Email;
                tableColumn.Width = 210;
                break;

            case "Geboortedatum":
                DateTime dt = AppDelegate.NSDateToDateTime(DataSource.Personen[(int)row].Geboortedatum);
                view.StringValue  = dt.ToLongDateString();
                tableColumn.Width = 210;
                break;

            case "Imagepath":
                view.StringValue  = DataSource.Personen[(int)row].Imagepath;
                tableColumn.Width = 210;
                break;

            case "Initialen":
                view.StringValue  = DataSource.Personen[(int)row].Initialen;
                tableColumn.Width = 65;
                break;

            case "Mobiel":
                view.StringValue  = DataSource.Personen[(int)row].Mobiel;
                tableColumn.Width = 100;
                break;

            case "Postcode":
                view.StringValue  = DataSource.Personen[(int)row].Postcode;
                tableColumn.Width = 60;
                break;

            case "Telefoon":
                view.StringValue  = DataSource.Personen[(int)row].Telefoon;
                tableColumn.Width = 100;
                break;

            case "Tussenvoegsel":
                view.StringValue  = DataSource.Personen[(int)row].Tussenvoegsel;
                tableColumn.Width = 55;
                break;

            case "Voornamen":
                view.StringValue  = DataSource.Personen[(int)row].Voornamen;
                tableColumn.Width = 100;
                break;

            case "Woonplaats":
                view.StringValue  = DataSource.Personen[(int)row].Woonplaats;
                tableColumn.Width = 120;
                break;

            case "Opleidingen":
                view.StringValue  = DataSource.Personen[(int)row].GevolgdeOpleidingenString;
                tableColumn.Width = 360;
                break;

            case "Aankopen":
                view.StringValue  = DataSource.Personen[(int)row].AankopenString;
                tableColumn.Width = 360;
                break;

            case "Onderhoud":
                view.StringValue  = DataSource.Personen[(int)row].InOnderhoudString;
                tableColumn.Width = 360;
                break;

            case "Lidmaatschappen":
                view.StringValue  = DataSource.Personen[(int)row].LidmaatschappenString;
                tableColumn.Width = 360;
                break;
            }
            return(view);
        }