예제 #1
0
        /************************************************************************************************************
        STATISCHE METHODEN
        internal bedeutet, dass sie nur von Klassen aus BO_Freelancetool (aus dem eigenem Namespace) aufgerufen werden können
        - also nicht direkt aus dem PL

        Die Methoden sind im BO_Freelancetool-Objekt, damit der BO-Programmierer alle SQL-Statements, die Kunden betreffen, an einer Stelle hat
        Der PL-Programmierer sieht diese Implementation aber nicht. Er sieht die Methoden, von wo aus er diese Objekte "bekommt"
        (also entsprechend der Navigability). Man hätte diese Methoden technisch aber problemlos auch in die cMain geben können!
        */
        // Hilfsfunktion für die beiden unteren Methoden
        private static Customers fillCustomerFromSQLDataReader(SqlDataReader reader)
        {
            Customers oneCustomer = new Customers();
            oneCustomer.id = reader.GetString(0);
            oneCustomer.name = reader.GetString(1);
            oneCustomer.mail = reader.GetString(2);
            oneCustomer.phone = reader.GetString(3);
            return oneCustomer;
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            lblError.Text = "";
            if (!IsPostBack)
            {
                currentID = (string)Session["id"]; //wurde beim Aufruf übertragen
                if (currentID != "")
                {
                    //Objekt laden und Werte setzen
                    currentCustomer = Main.getCustomerByID(currentID);

                    if (currentCustomer != null)
                    {
                        //kopiere die Properties des Objekts in die Felder der Maske
                        //lblID.Text = currentProject.id;
                        txtNameCustomer.Text = currentCustomer.name;
                        txtTelCustomer.Text = currentCustomer.phone;
                        txtMailCustomer.Text = currentCustomer.mail;
                        Session["Customer"] = currentCustomer; //Projektobjekt in Session speichern
                        btnDeleteCustomer.Visible = true;
                        tblNewAdress.Visible = true;
                    }
                    else
                    {
                        lblError.Text = "Kunde nicht gefunden - Sie können einen neuen Kunden anlegen!";
                        btnDeleteCustomer.Visible = false;
                        tblNewAdress.Visible = false;
                        Session["Customer"] = Main.newCustomer(); //neues leeres Kundenobjekt
                    }
                }
                else
                {
                    //leere ID? Dann ist das ein neuer Kunde
                    btnDeleteCustomer.Visible = false;
                    tblNewAdress.Visible = false;
                    currentCustomer = Main.newCustomer();
                    Session["Customer"] = currentCustomer; //neues leeres Projektobjekt
                }
            }
            else
                currentCustomer = (Customers)Session["Customer"];

            if (currentCustomer != null)
            {
                allAdresses = currentCustomer.getAdresses;
                GVAdresses.DataSource = allAdresses;
                GVAdresses.DataBind(); //dadurch wirds angezeigt
            }
        }
예제 #3
0
 // Laden aller Adressen als Liste von Objekten für einen bestimmten Kunden - Funktion wird von Customers aufgerufen!
 internal static List<Adresses> LoadAdressesForCustomer(Customers theCustomer)
 {
     SqlCommand cmd = new SqlCommand("select id, city, zip, street, nr, customerID from Adresses where customerID = @customerID", Main.GetConnection());
     cmd.Parameters.Add(new SqlParameter("customerID", theCustomer.id));
     SqlDataReader reader = cmd.ExecuteReader();
     List<Adresses> allAdresses = new List<Adresses>(); //initialisiere lehre Liste von Adressen
     while (reader.Read())
     {
         Adresses oneAdress = new Adresses();
         oneAdress.id = reader.GetString(0);
         oneAdress.city = reader.GetString(1);
         oneAdress.zip = reader.GetString(2);
         oneAdress.street = reader.GetString(3);
         oneAdress.nr = reader.GetString(4);
         oneAdress.customerID = reader.GetString(5);
         allAdresses.Add(oneAdress);
     }
     return allAdresses;
 }