static void VoorraadTransfer2(int artikelNr, int vanMagazijnNr, int naarMagazijnNr, int aantalStuks) { var transactionOptions = new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.RepeatableRead }; using (var transactionScope = new TransactionScope(TransactionScopeOption.Required, transactionOptions)) { using (var entities = new EFOpleidingenEntities()) { var vanVoorraad = entities.Voorraden.Find(vanMagazijnNr, artikelNr); if (vanVoorraad != null) { if (vanVoorraad.AantalStuks >= aantalStuks) { vanVoorraad.AantalStuks -= aantalStuks; var naarVoorraad = entities.Voorraden.Find(naarMagazijnNr, artikelNr); if (naarVoorraad != null) { naarVoorraad.AantalStuks += aantalStuks; } else { naarVoorraad = new Voorraad { ArtikelNr = artikelNr, MagazijnNr = naarMagazijnNr, AantalStuks = aantalStuks }; entities.Voorraden.Add(naarVoorraad); } entities.SaveChanges(); transactionScope.Complete(); } else { Console.WriteLine("Te weinig voorraad vor transfer"); } } else { Console.WriteLine("Artikel niet gevonden in magazijn " + vanMagazijnNr); } } } }
static void VoorraadTransfer1(int artikelNr, int vanMagazijnNr, int naarMagazijnNr, int aantalStuks) { using (var entities = new EFOpleidingenEntities()) { var vanVoorraad = entities.Voorraden.Find(vanMagazijnNr, artikelNr); if (vanVoorraad != null) { if (vanVoorraad.AantalStuks >= aantalStuks) { vanVoorraad.AantalStuks -= aantalStuks; var naarVoorraad = entities.Voorraden.Find(naarMagazijnNr, artikelNr); if (naarVoorraad != null) { naarVoorraad.AantalStuks += aantalStuks; } else { naarVoorraad = new Voorraad { ArtikelNr = artikelNr, MagazijnNr = naarMagazijnNr, AantalStuks = aantalStuks }; entities.Voorraden.Add(naarVoorraad); } entities.SaveChanges(); } else { Console.WriteLine("Te weinig voorraad voor transfer"); } } else { Console.WriteLine("Artikel niet gevonden in magazijn" + vanMagazijnNr); } } }