Пример #1
0
        public void TestExtentRelatedObjects()
        {
            m.Hinzufuegen(r);
            pm.MakePersistent(m);
            pm.Save();
            IList liste = pm.GetClassExtent(typeof(Mitarbeiter));

            m = (Mitarbeiter)liste[0];
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "1: Mitarbeiter should be persistent");
            Assert.NotNull(m.Reisen, "2. Relation is missing");
            Assert.AreEqual(1, m.Reisen.Count, "3. Wrong number of objects");
            Assert.AreEqual(NDOObjectState.Persistent, ((Reise)m.Reisen[0]).NDOObjectState, "4.: Reise should be hollow");

            pm.UnloadCache();
            liste = pm.GetClassExtent(typeof(Mitarbeiter));
            m     = (Mitarbeiter)liste[0];
            Assert.AreEqual(NDOObjectState.Hollow, m.NDOObjectState, "5: Mitarbeiter should be hollow");
            Assert.NotNull(m.Reisen, "6. Relation is missing");
            Assert.AreEqual(1, m.Reisen.Count, "7. Wrong number of objects");
            Assert.AreEqual(NDOObjectState.Hollow, ((Reise)m.Reisen[0]).NDOObjectState, "8.: Reise should be hollow");

            pm.UnloadCache();
            liste = pm.GetClassExtent(typeof(Mitarbeiter), false);
            m     = (Mitarbeiter)liste[0];
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "9: Mitarbeiter should be persistent");
            Assert.NotNull(m.Reisen, "10. Relation is missing");
            Assert.AreEqual(1, m.Reisen.Count, "11. Wrong number of objects");
            Assert.AreEqual(NDOObjectState.Hollow, ((Reise)m.Reisen[0]).NDOObjectState, "12.: Reise should be hollow");
        }
Пример #2
0
        public void CompTestCreateObjectsSave()
        {
            m.Adresse = a;
            pm.MakePersistent(m);
            pm.Save();
            Assert.That(!m.NDOObjectId.Equals(a.NDOObjectId), "Ids should be different");
            m = pm.Objects <Mitarbeiter>().Where(e => e.Oid() == m.NDOObjectId.Id.Value).SingleOrDefault();
            a = (Adresse)pm.FindObject(a.NDOObjectId);
            Assert.NotNull(m, "1. Mitarbeiter not found");
            Assert.NotNull(a, "1. Adresse not found");
            ObjectId moid = m.NDOObjectId;
            ObjectId aoid = a.NDOObjectId;

            m = null;
            a = null;

            pm.UnloadCache();
            m = pm.Objects <Mitarbeiter>().Where(e => e.NDOObjectId == moid).SingleOrDefault();
            Adresse a2 = m.Adresse;

            a = pm.Objects <Adresse>().Where(x => x.NDOObjectId == aoid).SingleOrDefault();
            Assert.NotNull(m, "2. Mitarbeiter not found");
            Assert.NotNull(a, "2. Adresse not found");
            Assert.AreSame(a, a2, "Address should match");
        }
Пример #3
0
        public void LoadDataOnUnknownObjectCallsEventHandler()
        {
            pm.ObjectNotPresentEvent += ea => true;              // prevents throwing an exception
            Mitarbeiter m = (Mitarbeiter)pm.FindObject(typeof(Mitarbeiter), 1000000);

            pm.LoadData(m);
        }
Пример #4
0
        public void CanPerformDirectDelete()
        {
            pm.MakePersistent(m);
            pm.Save();
            var firstName = m.Vorname;

            Assert.IsTrue(pm.Objects <Mitarbeiter>().Where(m => m.Vorname == firstName).Count > 0);

            var q = new NDOQuery <Mitarbeiter>(pm, "vorname = {0}");

            q.Parameters.Add(firstName);
            q.DeleteDirectly();

            Assert.AreEqual(0, pm.Objects <Mitarbeiter>().Where(m => m.Vorname == firstName).Count);

            m = CreateMitarbeiter("Mirko", "Matytschak");
            pm.MakePersistent(m);
            pm.Save();
            firstName = m.Vorname;

            Assert.IsTrue(pm.Objects <Mitarbeiter>().Where(m => m.Vorname == firstName).Count > 0);

            pm.Objects <Mitarbeiter>().Where(m => m.Vorname == firstName).DeleteDirectly();

            Assert.AreEqual(0, pm.Objects <Mitarbeiter>().Where(m => m.Vorname == firstName).Count);
        }
Пример #5
0
        public void TestLinqQuery()
        {
            ArrayList mliste = new ArrayList();

            for (int i = 1; i <= 100; i++)
            {
                Mitarbeiter mm = CreateMitarbeiter("Hartmut", (i % 3) == 0 ? "Test" : "xxx");
                pm.MakePersistent(mm);
                mliste.Add(mm);
            }
            pm.Save();

            List <Mitarbeiter> mitarbeiterListe = from m in pm.Objects <Mitarbeiter>() select m;

            Assert.AreEqual(100, mitarbeiterListe.Count, "Number of read objects is wrong #1");

            mitarbeiterListe = from m in pm.Objects <Mitarbeiter>() where m.Nachname == "Test" select m;
            Assert.AreEqual(100 / 3, mitarbeiterListe.Count, "Number of read objects is wrong #2");

            // Partial select
            List <string> nameList = from m in pm.Objects <Mitarbeiter>() select m.Vorname;

            Assert.AreEqual(100, nameList.Count, "Number of read objects is wrong #3");

            nameList = from m in pm.Objects <Mitarbeiter>() where m.Nachname == "Test" select m.Vorname;
            Assert.AreEqual(100 / 3, mitarbeiterListe.Count, "Number of read objects is wrong #4");
        }
Пример #6
0
        public void TestAggregateQuery()
        {
            Mitarbeiter mm;
            IList       l = new ArrayList();

            for (int i = 0; i < 20; i++)
            {
                mm          = new Mitarbeiter();
                mm.Vorname  = "lkj";
                mm.Nachname = i.ToString();
                mm.Position = new System.Drawing.Point(0, i);
                pm.MakePersistent(mm);
                l.Add(mm);
            }
            pm.Save();
            decimal sum = 0m;

            foreach (Mitarbeiter m2 in l)
            {
                sum += m2.Position.Y;
            }
            NDOQuery <Mitarbeiter> q = new NDOQuery <Mitarbeiter>(pm, null);
            decimal newsum           = (decimal)q.ExecuteAggregate("position.Y", AggregateType.Sum);

            Assert.AreEqual(sum, newsum, "Summe stimmt nicht");
            decimal count = (decimal)q.ExecuteAggregate("position.X", AggregateType.Count);

            Assert.AreEqual(20, count, "Count stimmt nicht");
        }
Пример #7
0
 /// <summary>
 /// Bearbeitet einen existierenden Mitarbeiter mit den übergebenen Daten in der Datenbank.
 /// </summary>
 /// <param name="mitarbeiter">aktualisierte Daten des Mitarbeiters</param>
 /// <param name="mitarbeiterID">Primärschlüssel des Mitarbeiters in der Datenbank</param>
 /// <seealso cref="EasyAuftragContext"/>
 public bool MitarbeiterBearbeiten(Mitarbeiter mitarbeiter, int mitarbeiterID, string connection)
 {
     try
     {
         using (var db = new EasyAuftragContext(connection))
         {
             if (db.Mitarbeiters.Find(mitarbeiterID) != null)
             {
                 db.Mitarbeiters.Find(mitarbeiterID).Name             = mitarbeiter.Name;
                 db.Mitarbeiters.Find(mitarbeiterID).Strasse          = mitarbeiter.Strasse;
                 db.Mitarbeiters.Find(mitarbeiterID).Hausnr           = mitarbeiter.Hausnr;
                 db.Mitarbeiters.Find(mitarbeiterID).PLZ              = mitarbeiter.PLZ;
                 db.Mitarbeiters.Find(mitarbeiterID).Wohnort          = mitarbeiter.Wohnort;
                 db.Mitarbeiters.Find(mitarbeiterID).TelefonNr        = mitarbeiter.TelefonNr;
                 db.Mitarbeiters.Find(mitarbeiterID).AuslastungStelle = mitarbeiter.AuslastungStelle;
                 db.SaveChanges();
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
     }
     catch (Exception ex)
     {
         ErrorHandler.ErrorHandle(ex);
         return(false);
     }
 }
Пример #8
0
        /// <summary>
        /// Gibt einen Mitarbeiter aus der Datenbank anhand der Mitarbeiter ID zurück
        /// </summary>
        /// <param name="mitarbeiterID"></param>
        /// <returns>Mitarbeiter aus Datenbank</returns>
        /// <seealso cref="EasyAuftragContext"/>
        public Mitarbeiter MitarbeiterLaden(int mitarbeiterID, out bool success, string connection)
        {
            Mitarbeiter mitarb = new Mitarbeiter();

            try
            {
                using (var db = new EasyAuftragContext(connection))
                {
                    if (db.Mitarbeiters.Find(mitarbeiterID) != null)
                    {
                        mitarb  = (from k in db.Mitarbeiters select k).First(k => k.MitarbeiterID == mitarbeiterID);
                        success = true;
                    }
                    else
                    {
                        success = false;
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorHandler.ErrorHandle(ex);
                success = false;
            }
            return(mitarb);
        }
Пример #9
0
        public void TestListenoperationen()
        {
            var mitarbeiter1 = new Mitarbeiter(new Person("1", "Mr.", "John", "Doe"), "Marketing");
            var mitarbeiter2 = new Mitarbeiter(new Person("2", "Ms.", "Jane", "Smith"), "Entwicklung");

            var mitarbeiterListe = new MitarbeiterListe();

            mitarbeiterListe.Add(mitarbeiter1);
            mitarbeiterListe.Add(mitarbeiter2);

            Assert.AreEqual(2, mitarbeiterListe.Count, "Anzahl nach dem Hinzufügen");
            Assert.AreEqual(mitarbeiter1, mitarbeiterListe.First, "Mitarbeiter an erster Position");
            Assert.AreEqual("1 / 2", mitarbeiterListe.Info, "Info");
            Assert.AreEqual(mitarbeiter2, mitarbeiterListe.Next, "Mitarbeiter an nächster Position");
            Assert.AreEqual("2 / 2", mitarbeiterListe.Info, "Info");
            Assert.AreEqual(mitarbeiter2, mitarbeiterListe.Next, "Mitarbeiter an nochmaliger nächster Position");
            Assert.AreEqual("2 / 2", mitarbeiterListe.Info, "Info");
            Assert.AreEqual(mitarbeiter1, mitarbeiterListe.Previous, "Mitarbeiter an vorheriger Position");
            Assert.AreEqual("1 / 2", mitarbeiterListe.Info, "Info");
            Assert.AreEqual(mitarbeiter1, mitarbeiterListe.Previous, "Mitarbeiter an nochmaliger vorheriger Position");
            Assert.AreEqual("1 / 2", mitarbeiterListe.Info, "Info");
            Assert.AreEqual(mitarbeiter2, mitarbeiterListe.Last, "Mitarbeiter an letzter Position");
            Assert.AreEqual("2 / 2", mitarbeiterListe.Info, "Info");
            Assert.AreEqual(mitarbeiter2, mitarbeiterListe.Current, "Mitarbeiter an aktueller Position");
            Assert.AreEqual("2 / 2", mitarbeiterListe.Info, "Info");
            Assert.IsNotNull(mitarbeiterListe.New, "Mitarbeiter an neuer Position");
            Assert.AreEqual(3, mitarbeiterListe.Count, "Anzahl nach dem Hinzufügen eines neuen Mitarbeiters");

            Assert.AreEqual("3 / 3", mitarbeiterListe.Info, "Info");
            var ma = mitarbeiterListe.First;

            Assert.AreEqual("1 / 3", mitarbeiterListe.Info, "Info");
        }
Пример #10
0
        public void PrefetchOccurs()
        {
            Reise r = new Reise()
            {
                Zweck = "NDO"
            };
            Mitarbeiter m = new Mitarbeiter()
            {
                Vorname = "Mirko", Nachname = "Matytschak"
            };

            pm.MakePersistent(m);
            m.Hinzufuegen(r);
            pm.Save();

            NDOQuery <Mitarbeiter> q = new NDOQuery <Mitarbeiter>(pm);

            q.AddPrefetch(nameof(Mitarbeiter.Reisen));

            var m2 = q.ExecuteSingle();

            var oc = pm.GetObjectContainer();

            Assert.AreEqual(2, oc.RootObjects.Count);
        }
Пример #11
0
        public void CompTestExtentRelatedObjects()
        {
            var pm = PmFactory.NewPersistenceManager();

            m.SVN = svn;
            pm.MakePersistent(m);
            pm.Save();
            IList liste = pm.GetClassExtent(typeof(Mitarbeiter));

            m = (Mitarbeiter)liste[0];
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "1: Mitarbeiter should be persistent");
            Assert.NotNull(m.SVN, "2. Relation is missing");
            Assert.AreEqual(NDOObjectState.Persistent, m.SVN.NDOObjectState, "2.: SVN should be hollow");
            Assert.AreSame(m, svn.Angestellter, "2. Backlink wrong");

            pm.UnloadCache();
            liste = pm.GetClassExtent(typeof(Mitarbeiter));
            m     = (Mitarbeiter)liste[0];
            Assert.AreEqual(NDOObjectState.Hollow, m.NDOObjectState, "5: Mitarbeiter should be hollow");
            Assert.NotNull(m.SVN, "6. Relation is missing");
            Assert.AreEqual(NDOObjectState.Hollow, m.SVN.NDOObjectState, "8.: SVN should be hollow");
            Assert.That(m != svn.Angestellter, "8a. Should be different objects");
            Assert.AreSame(m, m.SVN.Angestellter, "8b. Mitarbeiter should match");

            pm.UnloadCache();
            liste = pm.GetClassExtent(typeof(Mitarbeiter), false);
            m     = (Mitarbeiter)liste[0];
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "9: Mitarbeiter should be persistent");
            Assert.NotNull(m.SVN, "10. Relation is missing");
            Assert.AreEqual(NDOObjectState.Hollow, m.SVN.NDOObjectState, "12.: SVN should be hollow");
            Assert.That(m != svn.Angestellter, "12a. Should be different objects");
            Assert.AreSame(m, m.SVN.Angestellter, "12b. Mitarbeiter should match");
        }
Пример #12
0
        public void CompTestHollow()
        {
            var pm = PmFactory.NewPersistenceManager();

            m.SVN = svn;
            pm.MakePersistent(m);
            pm.Save();
            pm.MakeHollow(m);               // setzt m.svn auf null

            Assert.AreEqual(NDOObjectState.Hollow, m.NDOObjectState, "1: Mitarbeiter should be hollow");
            Assert.AreEqual(NDOObjectState.Persistent, svn.NDOObjectState, "1: SVN should be persistent");

            svn = m.SVN;             // ruft LoadData för m auf. m.svm liegt auf dem Cache und ist Persistent
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "1: Mitarbeiter should be persistent");
            Assert.AreEqual(NDOObjectState.Persistent, svn.NDOObjectState, "2: SVN should be persistent");
            ObjectId id = m.NDOObjectId;

            pm.Close();
            pm = PmFactory.NewPersistenceManager();
            m  = (Mitarbeiter)pm.FindObject(id);
            Assert.NotNull(m, "Mitarbeiter not found");
            Assert.AreEqual(NDOObjectState.Hollow, m.NDOObjectState, "2: Mitarbeiter should be hollow");
            svn = m.SVN;
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "2: Mitarbeiter should be persistent");
            Assert.NotNull(svn, "SVN not found");
            Assert.AreEqual(NDOObjectState.Hollow, svn.NDOObjectState, "1: SVN should be hollow");
            Assert.AreSame(m, svn.Angestellter, "2. Backlink wrong");
        }
Пример #13
0
        public void CompTestCreateObjectsSave()
        {
            var pm = PmFactory.NewPersistenceManager();

            m.SVN = svn;
            pm.MakePersistent(m);
            pm.Save();
            Assert.That(!m.NDOObjectId.Equals(m.SVN.NDOObjectId), "Ids should be different");
            m   = (Mitarbeiter)pm.FindObject(m.NDOObjectId);
            svn = (Sozialversicherungsnummer)pm.FindObject(m.SVN.NDOObjectId);
            Assert.NotNull(m, "1. Mitarbeiter not found");
            Assert.NotNull(svn, "1. SVN not found");
            ObjectId moid = m.NDOObjectId;
            ObjectId soid = svn.NDOObjectId;

            m   = null;
            svn = null;

            pm.UnloadCache();
            m = (Mitarbeiter)pm.FindObject(moid);
            Sozialversicherungsnummer s2 = m.SVN;

            svn = (Sozialversicherungsnummer)pm.FindObject(soid);
            Assert.NotNull(m, "2. Mitarbeiter not found");
            Assert.NotNull(svn, "2. SVN not found");
            Assert.AreSame(svn, s2, "SVN should match");
            Assert.AreSame(m, svn.Angestellter, "Mitarbeiter should match");
        }
Пример #14
0
        public void CompTestHollow()
        {
            m.Adresse = a;
            pm.MakePersistent(m);
            pm.Save();
            pm.MakeHollow(m);               // setzt m.adresse auf null

            Assert.AreEqual(NDOObjectState.Hollow, m.NDOObjectState, "1: Mitarbeiter should be hollow");
            Assert.AreEqual(NDOObjectState.Persistent, a.NDOObjectState, "1: Adresse should be persistent");

            a = m.Adresse;             // ruft LoadData för m auf. m.adresse liegt auf dem Cache und ist Persistent
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "1: Mitarbeiter should be persistent");
            Assert.AreEqual(NDOObjectState.Persistent, a.NDOObjectState, "2: Adresse should be persistent");
            ObjectId id = m.NDOObjectId;

            pm.Close();
            pm = PmFactory.NewPersistenceManager();
            m  = (Mitarbeiter)pm.FindObject(id);
            Assert.NotNull(m, "Mitarbeiter not found");
            Assert.AreEqual(NDOObjectState.Hollow, m.NDOObjectState, "2: Mitarbeiter should be hollow");
            a = m.Adresse;
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "2: Mitarbeiter should be persistent");
            Assert.NotNull(a, "Adress not found");
            Assert.AreEqual(NDOObjectState.Hollow, a.NDOObjectState, "1: Adresse should be hollow");
        }
Пример #15
0
        public void AssoTestCreateObjectsSave()
        {
            pm.MakePersistent(b);
            m.Zimmer = b;
            pm.MakePersistent(m);
            pm.Save();
            Assert.That(!m.NDOObjectId.Equals(b.NDOObjectId), "Ids should be different");
            m = (Mitarbeiter)pm.FindObject(m.NDOObjectId);
            b = (Buero)pm.FindObject(b.NDOObjectId);
            Assert.NotNull(m, "1. Mitarbeiter not found");
            Assert.NotNull(b, "1. Büro not found");
            ObjectId moid = m.NDOObjectId;
            ObjectId boid = b.NDOObjectId;

            m = null;
            b = null;

            pm.UnloadCache();
            m = (Mitarbeiter)pm.FindObject(moid);
            Buero b2 = m.Zimmer;

            b = (Buero)pm.FindObject(boid);
            Assert.NotNull(m, "2. Mitarbeiter not found");
            Assert.NotNull(b, "2. Adresse not found");
            Assert.AreSame(b, b2, "Büro should match");
        }
Пример #16
0
        public void ObjectContainerIsSerializable()
        {
            var binaryFormatter = new BinaryFormatter();

            pm.MakePersistent(m);
            pm.Save();
            var oc = pm.GetObjectContainer();

            Assert.That(Object.ReferenceEquals(m, oc.RootObjects[0]));

            oc.Formatter = binaryFormatter;
            string serialized = oc.MarshalingString;

            pm.UnloadCache();

            var oc2 = pm.GetObjectContainer();

            Assert.AreEqual(0, oc2.RootObjects.Count);

            oc = new ObjectContainer();
            oc.Deserialize(serialized, binaryFormatter);
            pm.MergeObjectContainer(oc);

            oc2 = pm.GetObjectContainer();
            Assert.AreEqual(1, oc2.RootObjects.Count);

            m = (Mitarbeiter)oc2.RootObjects[0];
            Assert.AreEqual("Mirko", m.Vorname);
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState);
        }
        private void projektleiterComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            Mitarbeiter mitarbeiter = (ProjektleiterComboBox.SelectedItem as MitarbeiterComboboxItem).Value;

            MitarbeiterInfoLbl.Text = "Abteilung: " + mitarbeiter.abteilung + "\n"
                                      + "Pensum: " + mitarbeiter.arbeitspensum + "% \n" + "Funktion: " + mitarbeiter.funktionsbeschreibung;
        }
Пример #18
0
        private void button3_Click(object sender, EventArgs e)
        {
            var abt1 = new Abteilung()
            {
                Bezeichnung = "Holz"
            };
            var abt2 = new Abteilung()
            {
                Bezeichnung = "Steine"
            };

            for (int i = 0; i < 100; i++)
            {
                var m = new Mitarbeiter()
                {
                    Name     = $"Fred #{i:000}",
                    GebDatum = DateTime.Now.AddYears(-30).AddDays(i * 17),
                    Beruf    = "Macht dinge"
                };

                if (i % 2 == 0)
                {
                    m.Abteilungen.Add(abt1);
                }
                if (i % 3 == 0)
                {
                    m.Abteilungen.Add(abt2);
                }

                context.Mitarbeiter.Add(m);
            }
            context.SaveChanges();
        }
Пример #19
0
 public async Task <bool> CreateEmployee(Mitarbeiter mitarbeiter)
 {
     if (mitarbeiter.Password == null || mitarbeiter.Password == String.Empty)
     {
         mitarbeiter.Password = "******";
     }
     using (var conn = new SqlConnection(_configuration.Value))
     {
         const string query = @"insert into dbo.Mitarbeiter (MitarbeiterName, StadtId, Password, RoleId) values (@MitarbeiterName, @StadtId, @Password, @RoleId)";
         if (conn.State == ConnectionState.Closed)
         {
             conn.Open();
         }
         try
         {
             await conn.ExecuteAsync(query, new { mitarbeiter.MitarbeiterName, mitarbeiter.StadtId, mitarbeiter.Password, mitarbeiter.RoleId }, commandType : CommandType.Text);
         }
         catch (Exception ex)
         {
             throw ex;
         }
         finally
         {
             if (conn.State == ConnectionState.Open)
             {
                 conn.Close();
             }
         }
     }
     return(true);
 }
        /// <summary>
        /// Eventhandler für wenn der "Hinzufügen" Knopf gedrückt wurde
        /// </summary>
        /// <param name="sender">Der Sender</param>
        /// <param name="e">Die Argumente</param>
        private void BTNAdd_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Mitarbeiter newMitarbeiter = null;

                if (this.tabAngestellter.IsSelected)
                {
                    newMitarbeiter = new Angestellter(txbAngestellterVorname.Text, txbAngestellterName.Text, float.Parse(txbAngestellterBruttogehalt.Text));
                }
                else if (this.tabArbeiter.IsSelected)
                {
                    newMitarbeiter = new Arbeiter(txbArbeiterVorname.Text, txbArbeiterName.Text, int.Parse(txbArbeiterStundenanzahl.Text), float.Parse(txbArbeiterStundenlohn.Text));
                }

                this.firma.ListMitarbeiter.Add(newMitarbeiter);
                this.firma.Notify();

                MessageBox.Show("Mitarbeiter hinzugefügt", "Erfolg", MessageBoxButton.OK, MessageBoxImage.Information);
            }
            catch
            {
                MessageBox.Show("Ungültige Eingabe", "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Пример #21
0
 public string updateStatement(BaseModel entity)
 {
     if (entity.GetType() == typeof(Bestand))
     {
         Bestand bestand = (Bestand)entity;
         return("UPDATE `festbon`.`t_bestand` SET "
                + "`name_bestand`='" + bestand.Name
                + "', `einheit_bestand`='" + bestand.Einheit
                + "', `menge_bestand`='" + ersetzeKommaMitPunkt(bestand.Menge)
                + "' WHERE `id_bestand`='" + bestand.ID + "';");
     }
     else if (entity.GetType() == typeof(Event))
     {
         Event _event = (Event)entity;
         return("UPDATE `festbon`.`t_event` SET "
                + "`name_event`= '" + _event.Name
                + "', `ort_event`= '" + _event.Ort
                + "', `datum_event`= '" + formatiereDatum(_event.Datum)
                + "', `beginn_event`= '" + _event.Beginn
                + "', `ende_event`= '" + _event.Ende
                + "', `aktiv_event`= '1"
                + "', `maxBestellung_event`= '" + _event.maxBestellungProStunde
                + "' WHERE `id_event`= '" + _event.ID + "'; ");
     }
     else if (entity.GetType() == typeof(Produkt))
     {
         Produkt produkt = (Produkt)entity;
         return("UPDATE `festbon`.`t_produkt` SET `"
                + "name_produkt`='" + produkt.Name
                + "', `preis_produkt`='" + wandelEuropreisInCentpreis(produkt.Preis)
                + "', `letztesUpdate_produkt`='" + formatiereDatum(DateTime.Now)
                + "', `id_bestand`='" + produkt.Bestand.ID
                + "', `art_produkt`='" + produkt.Art
                + "', `portion_produkt`='" + ersetzeKommaMitPunkt(produkt.Groesse * 1000)
                + "', `aktiv_produkt`='1'"
                + " WHERE `id_produkt`='" + produkt.ID + "';");
     }
     else if (entity.GetType() == typeof(Menue))
     {
         Menue menue = (Menue)entity;
         return("UPDATE `festbon`.`t_menue` SET "
                + "`name_menue`= '" + menue.Name
                + "', `beschreibung_menue`= '" + menue.Beschreibung
                + "', `preis_menue`= '" + wandelEuropreisInCentpreis(menue.Preis)
                + "', `datum_menue`= '" + formatiereDatum(DateTime.Now)
                + "', `aktiv_menue`= '1'"
                + " WHERE `id_menue`= '" + menue.ID + "'; ");
     }
     else
     {
         Mitarbeiter mitarbeiter = (Mitarbeiter)entity;
         return("UPDATE `festbon`.`t_mitarbeiter` SET "
                + "`vorname_mitarbeiter`='" + mitarbeiter.Vorname
                + "', `nachname_mitarbeiter`='" + mitarbeiter.Nachname
                + "', `geburtsdatum_mitarbeiter`='" + formatiereDatum(mitarbeiter.Geburtsdatum)
                + "', `passwort_mitarbeiter`= '" + mitarbeiter.Passwort
                + "', `aktiv_mitarbeiter`='1"
                + "' WHERE `id_mitarbeiter`='" + mitarbeiter.ID + "';");
     }
 }
Пример #22
0
        public void CompleteTurnaroundWithAddedObject(Type formatterType)
        {
            // Create object and serialize it
            IFormatter formatter = (IFormatter)Activator.CreateInstance(formatterType);

            var m = CreateMitarbeiter();

            pm.MakePersistent(m);
            pm.Save();
            var oc = pm.GetObjectContainer();

            oc.Formatter = formatter;
            string serialized = oc.MarshalingString;

            pm.UnloadCache();

            // Merge object into an OfflinePersistenceManager and change it
            OfflinePersistenceManager opm = new OfflinePersistenceManager(pm.NDOMapping.FileName);

            oc = new ObjectContainer();
            oc.Deserialize(serialized, formatter);

            opm.MergeObjectContainer(oc);

            var m2 = new Mitarbeiter()
            {
                Vorname = "Hans", Nachname = "Müller"
            };

            opm.MakePersistent(m2);

            // Create a ChangeSetContainer and serialize it
            var csc = opm.GetChangeSet();

            csc.Formatter = formatter;
            string serializedChanges = csc.MarshalingString;

            // Merge the changes back to pm
            csc = new ChangeSetContainer();
            csc.Deserialize(serializedChanges, formatter);

            Assert.That(csc.AddedObjects.Count == 1);

            pm = new PersistenceManager();              // we need a new pm here which get's us id's beginning from -1
            pm.MergeObjectContainer(csc);
            // Now we should have a created object in the cache
            Assert.AreEqual(true, pm.HasChanges);
            m = (Mitarbeiter)pm.FindObject(typeof(Mitarbeiter), -1);
            Assert.That(m.NDOObjectState == NDOObjectState.Created);

            // Save and Reload
            pm.Save();
            Assert.That(m.NDOObjectState == NDOObjectState.Persistent);
            pm.UnloadCache();
            var l = pm.Objects <Mitarbeiter>().ResultTable;

            Assert.AreEqual(2, l.Count);
            Assert.That(l.Any(m1 => m1.Vorname == "Mirko" && m1.Nachname == "Matytschak"));
            Assert.That(l.Any(m1 => m1.Vorname == "Hans" && m1.Nachname == "Müller"));
        }
Пример #23
0
 public void Setup()
 {
     pm = PmFactory.NewPersistenceManager();
     m  = CreateMitarbeiter("Mirko", "Matytschak");
     a  = CreateAdresse("D", "83646", "Nockhergasse 7", "Bad Tölz");
     b  = CreateBuero("3-0815");
 }
Пример #24
0
 public void TestCreateObjects()
 {
     pm.MakePersistent(m);
     pm.MakePersistent(a);
     pm.MakePersistent(b);
     if (!pm.HasOwnerCreatedIds)
     {
         if (m.NDOObjectId.Id[0] is Int32)
         {
             Assert.AreEqual(-1, m.NDOObjectId.Id[0], "Mitarbeiter key wrong");
         }
         if (a.NDOObjectId.Id[0] is Int32)
         {
             Assert.AreEqual(-1, a.NDOObjectId.Id[0], "Adresse key wrong");
         }
         if (b.NDOObjectId.Id[0] is Int32)
         {
             Assert.AreEqual(-1, b.NDOObjectId.Id[0], "Büro key wrong");
         }
     }
     Assert.That(!m.NDOObjectId.Equals(a.NDOObjectId), "Ids should be different m-a");
     Assert.That(!m.NDOObjectId.Equals(b.NDOObjectId), "Ids should be different m-b");
     Assert.That(!a.NDOObjectId.Equals(b.NDOObjectId), "Ids should be different a-b");
     m = (Mitarbeiter)pm.FindObject(m.NDOObjectId);
     a = (Adresse)pm.FindObject(a.NDOObjectId);
     b = (Buero)pm.FindObject(b.NDOObjectId);
 }
Пример #25
0
        public void CombinedTestAddBüroRemoveAdresseAbort()
        {
            pm.MakePersistent(b);
            m.Adresse = a;
            pm.MakePersistent(m);
            pm.Save();
            ObjectId aoid = a.NDOObjectId;

            m.Zimmer  = b;
            m.Adresse = null;
            pm.Abort();
            Assert.NotNull(m, "1. Mitarbeiter not found");
            Assert.NotNull(m.Adresse, "1. Adresse not found");
            Assert.Null(m.Zimmer, "1. Unexpected Büro");


            ObjectId moid = m.NDOObjectId;

            m = null;
            a = null;
            b = null;

            pm.UnloadCache();
            m = (Mitarbeiter)pm.FindObject(moid);
            Assert.NotNull(m, "2. Mitarbeiter not found");
            Assert.NotNull(m.Adresse, "2. Adresse not found");
            Assert.Null(m.Zimmer, "2. Unexpected Büro");
        }
Пример #26
0
        public void CombinedTestCreateObjectsSave()
        {
            pm.MakePersistent(b);
            m.Adresse = a;
            m.Zimmer  = b;
            pm.MakePersistent(m);
            pm.Save();
            Assert.That(!m.NDOObjectId.Equals(a.NDOObjectId), "Ids should be different");
            m = (Mitarbeiter)pm.FindObject(m.NDOObjectId);
            a = (Adresse)pm.FindObject(a.NDOObjectId);
            b = (Buero)pm.FindObject(b.NDOObjectId);
            Assert.NotNull(m, "1. Mitarbeiter not found");
            Assert.NotNull(a, "1. Adresse not found");
            Assert.NotNull(b, "1. Büro not found");
            ObjectId moid = m.NDOObjectId;
            ObjectId aoid = a.NDOObjectId;
            ObjectId boid = b.NDOObjectId;

            m = null;
            a = null;
            b = null;

            pm.UnloadCache();
            m = (Mitarbeiter)pm.FindObject(moid);
            Assert.NotNull(m, "2. Mitarbeiter not found");
            Assert.NotNull(m.Adresse, "2. Adresse not found");
            Assert.NotNull(m.Zimmer, "2. Büro not found");
        }
Пример #27
0
        public void AssoTestExtentRelatedObjects()
        {
            pm.MakePersistent(b);
            m.Zimmer = b;
            pm.MakePersistent(m);
            pm.Save();
            IList liste = pm.GetClassExtent(typeof(Mitarbeiter));

            m = (Mitarbeiter)liste[0];
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "1: Mitarbeiter should be persistent");
            Assert.NotNull(m.Zimmer, "2. Relation is missing");
            Assert.AreEqual(NDOObjectState.Persistent, m.Zimmer.NDOObjectState, "4.: Büro should be hollow");

            pm.UnloadCache();
            liste = pm.GetClassExtent(typeof(Mitarbeiter));
            m     = (Mitarbeiter)liste[0];
            Assert.AreEqual(NDOObjectState.Hollow, m.NDOObjectState, "5: Mitarbeiter should be hollow");
            Assert.NotNull(m.Zimmer, "6. Relation is missing");
            Assert.AreEqual(NDOObjectState.Hollow, m.Zimmer.NDOObjectState, "8.: Büro should be hollow");

            pm.UnloadCache();
            liste = pm.GetClassExtent(typeof(Mitarbeiter), false);
            m     = (Mitarbeiter)liste[0];
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "9: Mitarbeiter should be persistent");
            Assert.NotNull(m.Zimmer, "10. Relation is missing");
            Assert.AreEqual(NDOObjectState.Hollow, m.Zimmer.NDOObjectState, "12.: Büro should be hollow");
        }
Пример #28
0
        public void AssoTestHollow()
        {
            pm.MakePersistent(b);
            m.Zimmer = b;
            pm.MakePersistent(m);
            pm.Save();
            pm.MakeHollow(m);               // setzt m.Zimmer auf null

            Assert.AreEqual(NDOObjectState.Hollow, m.NDOObjectState, "1: Mitarbeiter should be hollow");
            Assert.AreEqual(NDOObjectState.Persistent, b.NDOObjectState, "1: Büro should be persistent");

            b = m.Zimmer;             // ruft LoadData för m auf. m.Zimmer liegt im Cache und ist Persistent
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "1: Mitarbeiter should be persistent");
            Assert.AreEqual(NDOObjectState.Persistent, b.NDOObjectState, "2: Adresse should be persistent");
            ObjectId id = m.NDOObjectId;

            pm.Close();
            pm = PmFactory.NewPersistenceManager();
            m  = (Mitarbeiter)pm.FindObject(id);
            Assert.NotNull(m, "Mitarbeiter not found");
            Assert.AreEqual(NDOObjectState.Hollow, m.NDOObjectState, "2: Mitarbeiter should be hollow");
            b = m.Zimmer;
            Assert.AreEqual(NDOObjectState.Persistent, m.NDOObjectState, "2: Mitarbeiter should be persistent");
            Assert.NotNull(b, "Büro not found");
            Assert.AreEqual(NDOObjectState.Hollow, b.NDOObjectState, "1: Büro should be hollow");
        }
        /// <summary>
        /// Edit Action for Employees
        /// </summary>
        /// <param name="id"></param>
        /// <returns>edit view</returns>
        /// Example: GET: Mitarbeiter/Edit/5
        public ActionResult Edit(int?id)
        {
            //Check if an ID was set and if not, show a Bad-Request-Error
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            //Search the employee in the database
            Mitarbeiter mitarbeiter = new Mitarbeiter();

            mitarbeiter = db.Mitarbeiter.Find(id);

            //If no employee was found with the given ID, show an error
            if (mitarbeiter == null)
            {
                return(HttpNotFound());
            }

            //Automatically map the properties of "Mitarbeiter" to MitarbeiterViewMode
            var model = Mapper.Map <MitarbeiterViewModel>(mitarbeiter);

            //Populate Employee Functions
            this.ViewBag.AllFunctions = this.db.Funktion.ToList();

            //Return Edit view
            return(View(model));
        }
Пример #30
0
 /// <summary>
 /// Konstruktor für die <see cref="MitarbeiterView"/>
 /// </summary>
 public MitarbeiterView(string titel, string connection)
 {
     _connection     = connection;
     MitarbeiterInfo = new Mitarbeiter();
     InitializeComponent();
     Text = titel;
 }
        private void btnMit_Handler(object sender, RoutedEventArgs e)
        {

            Button myButton = (Button)sender;

            // Create new Mitarbeiter
            if (myButton.Tag.ToString() == "new")
            {
                Mitarbeiter newMitarbeiter = new Mitarbeiter();
                int id;
                var bool4 = Int32.TryParse(Application.Current.Properties["mit_id"].ToString(), out id); // saved max id to increment
                newMitarbeiter.ID = id += 1;
                Application.Current.Properties["mit_id"] = (id += 1).ToString();
                newMitarbeiter.Name = this.mitName.Text;
                newMitarbeiter.Vorname = this.mitVorname.Text;
                newMitarbeiter.IstAktiv = this.mitAktiv.IsChecked.Value;
                Bibliothek.Mitarbeiter_Neu(newMitarbeiter);

                // Employee entry created - show success and reset form
                this.mitName.Text = "";
                this.mitVorname.Text = "";
                this.mitAktiv.IsChecked = false;

                this.success.Text = "Mitarbeiter erfolgrichlich erstellt";
                this.success.Visibility = Visibility.Visible;
            }

            // Edit Mitarbeiter
            if (myButton.Tag.ToString() == "edit")
            {
                int id;
                var bool6 = Int32.TryParse(this.btnID.Tag.ToString(), out id);
                Mitarbeiter mit = Bibliothek.Mitarbeiter_nach_ID(id);
                mit.Name = this.mitName.Text;
                mit.Vorname = this.mitVorname.Text;
                mit.IstAktiv = this.mitAktiv.IsChecked.Value;
                this.btnID.Tag = ""; // reset edit employee id holder

                // Employee entry edited - show success and reset form
                this.mitName.Text = "";
                this.mitVorname.Text = "";
                this.mitAktiv.IsChecked = false;

                this.success.Text = "Mitarbeiter erfolgrichlich gearbeitet";
                this.success.Visibility = Visibility.Visible;
            }

        }
Пример #32
0
 public static void ToString(Mitarbeiter obj, MethodReturnEventArgs<string> e)
 {
     e.Result = obj.Name;
 }
Пример #33
0
        private void CreateTestData()
        {
            {
                srvCtx = scope.Resolve<IZetboxServerContext>();

                var grpAdmin = Zetbox.NamedObjects.Base.Groups.Administrator.Find(srvCtx);
                var grpEveryOne = Zetbox.NamedObjects.Base.Groups.Everyone.Find(srvCtx);

                // Create Identities
                admin = srvCtx.Create<Identity>();
                admin.DisplayName = "Administrator";
                admin.UserName = "******";
                admin.Groups.Add(grpAdmin);
                admin.Groups.Add(grpEveryOne);

                identity1 = srvCtx.Create<Identity>();
                identity1.DisplayName = "User 1";
                identity1.UserName = "******";
                identity1.Groups.Add(grpEveryOne);

                identity2 = srvCtx.Create<Identity>();
                identity2.DisplayName = "User 2";
                identity2.UserName = "******";
                identity2.Groups.Add(grpEveryOne);

                identity3_low = srvCtx.Create<Identity>();
                identity3_low.DisplayName = "User 3 with low privileges";
                identity3_low.UserName = "******";

                ma1 = srvCtx.Create<Mitarbeiter>();
                ma1.Name = identity1.DisplayName;
                ma1.Identity = identity1;

                ma2 = srvCtx.Create<Mitarbeiter>();
                ma2.Name = identity2.DisplayName;
                ma2.Identity = identity2;

                ma3_low = srvCtx.Create<Mitarbeiter>();
                ma3_low.Name = identity3_low.DisplayName;
                ma3_low.Identity = identity3_low;

                srvCtx.SubmitChanges();
            }

            {
                // Create 3 identity context
                var ctx = scope.Resolve<ServerZetboxContextFactory>().Invoke(identity1);

                // Create TestData with Identity 1
                prj1 = ctx.Create<Projekt>();
                prj1.Name = "Project User 1";
                prj1.Mitarbeiter.Add(ctx.Find<Mitarbeiter>(ma1.ID));
                CreateTasks(ctx, prj1);

                // Create TestData with Identity 1, common
                prjCommon = ctx.Create<Projekt>();
                prjCommon.Name = "Project Common";
                prjCommon.Mitarbeiter.Add(ctx.Find<Mitarbeiter>(ma1.ID));
                prjCommon.Mitarbeiter.Add(ctx.Find<Mitarbeiter>(ma2.ID));
                CreateTasks(ctx, prjCommon);

                ctx.SubmitChanges();

                prj1ID = prj1.ID;
                prjCommonID = prjCommon.ID;
            }

            {
                var ctx = scope.Resolve<ServerZetboxContextFactory>().Invoke(identity2);

                // Create TestData with Identity 2
                prj2 = ctx.Create<Projekt>();
                prj2.Name = "Project User 2";
                prj2.Mitarbeiter.Add(ctx.Find<Mitarbeiter>(ma2.ID));
                CreateTasks(ctx, prj2);
                ctx.SubmitChanges();

                prj2ID = prj2.ID;
            }

            id1Ctx = scope.Resolve<ServerZetboxContextFactory>().Invoke(identity1);
            id2Ctx = scope.Resolve<ServerZetboxContextFactory>().Invoke(identity2);
            id3Ctx_low = scope.Resolve<ServerZetboxContextFactory>().Invoke(identity3_low);

            prj1 = id1Ctx.Find<Projekt>(prj1ID);
            prjCommon = id1Ctx.Find<Projekt>(prjCommonID);
            prj2 = id2Ctx.Find<Projekt>(prj2ID);

            // Fix security tables
            // Own test checks if this works during object modifications too
            var connectionString = config.Server.GetConnectionString(Helper.ZetboxConnectionStringKey);
            using (var db = scope.ResolveNamed<ISchemaProvider>(connectionString.SchemaProvider))
            {
                db.Open(connectionString.ConnectionString);
                db.ExecRefreshRightsOnProcedure(db.GetProcedureName("projekte", "RefreshRightsOn_Projekte"));
                db.ExecRefreshRightsOnProcedure(db.GetProcedureName("projekte", "RefreshRightsOn_Tasks"));
                db.ExecRefreshRightsOnProcedure(db.GetProcedureName("projekte", "RefreshRightsOn_Auftraege"));
            }
        }