コード例 #1
0
        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);
                    }
                }
            }
        }
コード例 #2
0
        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);
                }
            }
        }