예제 #1
0
        public ObservableCollection <Soort> GetSoorten()
        {
            var soorten = new ObservableCollection <Soort>();
            var manager = new TuincentrumDbManager();

            using (var conTuincentrum = manager.GetConnection())
            {
                using (var comSoorten = conTuincentrum.CreateCommand())
                {
                    comSoorten.CommandType = CommandType.Text;
                    comSoorten.CommandText = "select * from Soorten order by Soort ASC";

                    conTuincentrum.Open();
                    using (var rdrSoorten = comSoorten.ExecuteReader())
                    {
                        Int32 soortNrPos    = rdrSoorten.GetOrdinal("SoortNr");
                        Int32 naamPos       = rdrSoorten.GetOrdinal("Soort");
                        Int32 magazijnNrPos = rdrSoorten.GetOrdinal("MagazijnNr");
                        while (rdrSoorten.Read())
                        {
                            soorten.Add(new Soort(rdrSoorten.GetInt32(soortNrPos),
                                                  rdrSoorten.GetString(naamPos),
                                                  rdrSoorten.GetByte(magazijnNrPos)));
                        }
                    }
                }
            }
            return(soorten);
        }
예제 #2
0
        public Decimal BerekenGemiddeldeKostprijs(string soort)
        {
            var dbManager = new TuincentrumDbManager();

            using (var conTuincentrum = dbManager.GetConnection())
            {
                using (var comGemPrijs = conTuincentrum.CreateCommand())
                {
                    comGemPrijs.CommandType = CommandType.StoredProcedure;
                    comGemPrijs.CommandText = "BerekenGemiddeldeKostprijs";

                    var parSoort = comGemPrijs.CreateParameter();
                    parSoort.ParameterName = "@soort";
                    parSoort.Value         = soort;
                    comGemPrijs.Parameters.Add(parSoort);

                    conTuincentrum.Open();
                    Object resultaat = comGemPrijs.ExecuteScalar();
                    if (resultaat == DBNull.Value)
                    {
                        throw new Exception("Soort bestaat niet");
                    }
                    else
                    {
                        return((Decimal)resultaat);
                    }
                }
            }
        }
예제 #3
0
        public void VervangLeverancier(int oudLevnr, int nieuwLevnr)
        {
            var dbManger = new TuincentrumDbManager();

            var opties = new TransactionOptions();

            opties.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;

            using (var traVervangLeverancier = new TransactionScope(TransactionScopeOption.Required, opties))
            {
                using (var conTuincentrum = dbManger.GetConnection())
                {
                    using (var comVervangLevPlanten = conTuincentrum.CreateCommand())
                    {
                        comVervangLevPlanten.CommandType = CommandType.StoredProcedure;
                        comVervangLevPlanten.CommandText = "VervangLeverancier";

                        var parOudLevnr = comVervangLevPlanten.CreateParameter();
                        parOudLevnr.ParameterName = "@oudLevnr";
                        parOudLevnr.Value         = oudLevnr;
                        comVervangLevPlanten.Parameters.Add(parOudLevnr);

                        var parNieuwLevnr = comVervangLevPlanten.CreateParameter();
                        parNieuwLevnr.ParameterName = "@nieuwLevnr";
                        parNieuwLevnr.Value         = nieuwLevnr;
                        comVervangLevPlanten.Parameters.Add(parNieuwLevnr);

                        conTuincentrum.Open();
                        if (comVervangLevPlanten.ExecuteNonQuery() == 0)
                        {
                            throw new Exception("Oud leveranciersnummer bestaat niet");
                        }
                    }
                }
                using (var conTuincentrum = dbManger.GetConnection())
                {
                    using (var comVerwijderLev = conTuincentrum.CreateCommand())
                    {
                        comVerwijderLev.CommandType = CommandType.StoredProcedure;
                        comVerwijderLev.CommandText = "VerwijderLeverancier";

                        var parOudLevnr = comVerwijderLev.CreateParameter();
                        parOudLevnr.ParameterName = "@oudLevnr";
                        parOudLevnr.Value         = oudLevnr;
                        comVerwijderLev.Parameters.Add(parOudLevnr);

                        conTuincentrum.Open();
                        if (comVerwijderLev.ExecuteNonQuery() == 0)
                        {
                            throw new Exception("Oud leveranciersnummer bestaat niet");
                        }
                        traVervangLeverancier.Complete();
                    }
                }
            }
        }
예제 #4
0
        public void SchrijfWijzigingenMultiUser(List <Leverancier> leveranciers)
        {
            var manager = new TuincentrumDbManager();

            using (var conTuincentrum = manager.GetConnection())
            {
                using (var comUpdate = conTuincentrum.CreateCommand())
                {
                    comUpdate.CommandType = CommandType.Text;
                    comUpdate.CommandText = "update Leveranciers set Naam=@naam, Adres=@adres, PostNr=@postnr, Woonplaats=@woonplaats where LevNr=@levnr and Versie=@versie";

                    var parNaam = comUpdate.CreateParameter();
                    parNaam.ParameterName = "@naam";
                    comUpdate.Parameters.Add(parNaam);

                    var parAdres = comUpdate.CreateParameter();
                    parAdres.ParameterName = "@adres";
                    comUpdate.Parameters.Add(parAdres);

                    var parPostNr = comUpdate.CreateParameter();
                    parPostNr.ParameterName = "@postnr";
                    comUpdate.Parameters.Add(parPostNr);

                    var parWoonplaats = comUpdate.CreateParameter();
                    parWoonplaats.ParameterName = "@woonplaats";
                    comUpdate.Parameters.Add(parWoonplaats);

                    var parLevNr = comUpdate.CreateParameter();
                    parLevNr.ParameterName = "@levnr";
                    comUpdate.Parameters.Add(parLevNr);

                    var parVersie = comUpdate.CreateParameter();
                    parVersie.ParameterName = "@versie";
                    comUpdate.Parameters.Add(parVersie);

                    conTuincentrum.Open();
                    foreach (Leverancier eenLeverancier in leveranciers)
                    {
                        parNaam.Value       = eenLeverancier.Naam;
                        parAdres.Value      = eenLeverancier.Adres;
                        parPostNr.Value     = eenLeverancier.PostNr;
                        parWoonplaats.Value = eenLeverancier.Woonplaats;
                        parLevNr.Value      = eenLeverancier.LevNr;
                        parVersie.Value     = eenLeverancier.Versie;
                        if (comUpdate.ExecuteNonQuery() == 0)
                        {
                            throw new Exception("Iemand was je voor");
                        }
                    }
                }
            }
        }
예제 #5
0
        public List <Plant> SchrijfWijzigingen(List <Plant> planten)
        {
            var nietDoorgevoerdePlanten = new List <Plant>();
            var manager = new TuincentrumDbManager();

            using (var conTuincentrum = manager.GetConnection())
            {
                using (var comUpdate = conTuincentrum.CreateCommand())
                {
                    comUpdate.CommandType = CommandType.Text;
                    comUpdate.CommandText = "update Planten set Kleur=@kleur, VerkoopPrijs=@verkoopprijs where SoortNr=@soortnr and Naam=@naam";

                    var parKleur = comUpdate.CreateParameter();
                    parKleur.ParameterName = "@kleur";
                    comUpdate.Parameters.Add(parKleur);

                    var parVerkoopPrijs = comUpdate.CreateParameter();
                    parVerkoopPrijs.ParameterName = "@verkoopprijs";
                    comUpdate.Parameters.Add(parVerkoopPrijs);

                    var parSoortNr = comUpdate.CreateParameter();
                    parSoortNr.ParameterName = "@soortnr";
                    comUpdate.Parameters.Add(parSoortNr);

                    var parNaam = comUpdate.CreateParameter();
                    parNaam.ParameterName = "@naam";
                    comUpdate.Parameters.Add(parNaam);

                    conTuincentrum.Open();
                    foreach (Plant eenPlant in planten)
                    {
                        try
                        {
                            parKleur.Value        = eenPlant.Kleur;
                            parVerkoopPrijs.Value = eenPlant.VerkoopPrijs;
                            parSoortNr.Value      = eenPlant.SoortNr;
                            parNaam.Value         = eenPlant.Naam;
                            if (comUpdate.ExecuteNonQuery() == 0)
                            {
                                nietDoorgevoerdePlanten.Add(eenPlant);
                            }
                        }
                        catch (Exception)
                        {
                            nietDoorgevoerdePlanten.Add(eenPlant);
                        }
                    }
                }
            }
            return(nietDoorgevoerdePlanten);
        }
예제 #6
0
        public List <Leverancier> SchrijfToevoegingen(List <Leverancier> leveranciers)
        {
            var nietToegevoegdeLeveranciers = new List <Leverancier>();
            var manager = new TuincentrumDbManager();

            using (var conTuincentrum = manager.GetConnection())
            {
                using (var comInsert = conTuincentrum.CreateCommand())
                {
                    comInsert.CommandType = CommandType.Text;
                    comInsert.CommandText = "Insert into Leveranciers (Naam, Adres, PostNr, Woonplaats) values(@naam, @adres, @postnr, @woonplaats)";

                    var parNaam = comInsert.CreateParameter();
                    parNaam.ParameterName = "@naam";
                    comInsert.Parameters.Add(parNaam);

                    var parAdres = comInsert.CreateParameter();
                    parAdres.ParameterName = "@adres";
                    comInsert.Parameters.Add(parAdres);

                    var parPostNr = comInsert.CreateParameter();
                    parPostNr.ParameterName = "@postnr";
                    comInsert.Parameters.Add(parPostNr);

                    var parWoonplaats = comInsert.CreateParameter();
                    parWoonplaats.ParameterName = "@woonplaats";
                    comInsert.Parameters.Add(parWoonplaats);

                    conTuincentrum.Open();
                    foreach (Leverancier eenLeverancier in leveranciers)
                    {
                        try
                        {
                            parNaam.Value       = eenLeverancier.Naam;
                            parAdres.Value      = eenLeverancier.Adres;
                            parPostNr.Value     = eenLeverancier.PostNr;
                            parWoonplaats.Value = eenLeverancier.Woonplaats;
                            if (comInsert.ExecuteNonQuery() == 0)
                            {
                                nietToegevoegdeLeveranciers.Add(eenLeverancier);
                            }
                        }
                        catch (Exception)
                        {
                            nietToegevoegdeLeveranciers.Add(eenLeverancier);
                        }
                    }
                }
            }
            return(nietToegevoegdeLeveranciers);
        }
예제 #7
0
        public ObservableCollection <Plant> GetPlanten(Int32 soortNr)
        {
            var planten = new ObservableCollection <Plant>();
            var manager = new TuincentrumDbManager();

            using (var conTuincentrum = manager.GetConnection())
            {
                using (var comPlanten = conTuincentrum.CreateCommand())
                {
                    comPlanten.CommandType = CommandType.Text;
                    if (soortNr != 0)
                    {
                        comPlanten.CommandText = "select * from Planten where SoortNr = @soortNr order by Naam ASC";
                        var parSoortNr = comPlanten.CreateParameter();
                        parSoortNr.ParameterName = "@soortNr";
                        parSoortNr.Value         = soortNr;
                        comPlanten.Parameters.Add(parSoortNr);
                    }
                    else
                    {
                        comPlanten.CommandText = "select * from Planten";
                    }
                    conTuincentrum.Open();
                    using (var rdrPlanten = comPlanten.ExecuteReader())
                    {
                        Int32 plantNrPos      = rdrPlanten.GetOrdinal("PlantNr");
                        Int32 naamPos         = rdrPlanten.GetOrdinal("Naam");
                        Int32 soortNrPos      = rdrPlanten.GetOrdinal("SoortNr");
                        Int32 levNrPos        = rdrPlanten.GetOrdinal("Levnr");
                        Int32 kleurPos        = rdrPlanten.GetOrdinal("Kleur");
                        Int32 verkoopPrijsPos = rdrPlanten.GetOrdinal("VerkoopPrijs");
                        while (rdrPlanten.Read())
                        {
                            planten.Add(new Plant(rdrPlanten.GetInt32(plantNrPos),
                                                  rdrPlanten.GetString(naamPos),
                                                  rdrPlanten.GetInt32(soortNrPos),
                                                  rdrPlanten.GetInt32(levNrPos),
                                                  rdrPlanten.GetString(kleurPos),
                                                  rdrPlanten.GetDecimal(verkoopPrijsPos)
                                                  ));
                        }
                    }
                }
            }
            return(planten);
        }
예제 #8
0
        public ObservableCollection <Leverancier> GetLeveranciers(string postNr)
        {
            var leveranciers = new ObservableCollection <Leverancier>();
            var manager      = new TuincentrumDbManager();

            using (var conTuincentrum = manager.GetConnection())
            {
                using (var comLeveranciers = conTuincentrum.CreateCommand())
                {
                    comLeveranciers.CommandType = CommandType.Text;
                    if (postNr != string.Empty)
                    {
                        comLeveranciers.CommandText = "select * from Leveranciers where PostNr = @postnr order by PostNr";

                        var parPostNr = comLeveranciers.CreateParameter();
                        parPostNr.ParameterName = "@postnr";
                        parPostNr.Value         = postNr;
                        comLeveranciers.Parameters.Add(parPostNr);
                    }
                    else
                    {
                        comLeveranciers.CommandText = "select * from Leveranciers";
                    }
                    conTuincentrum.Open();
                    using (var rdrLeveranciers = comLeveranciers.ExecuteReader())
                    {
                        Int32 levNrPos      = rdrLeveranciers.GetOrdinal("LevNr");
                        Int32 naamPos       = rdrLeveranciers.GetOrdinal("Naam");
                        Int32 adresPos      = rdrLeveranciers.GetOrdinal("Adres");
                        Int32 postNrPos     = rdrLeveranciers.GetOrdinal("PostNr");
                        Int32 woonplaatsPos = rdrLeveranciers.GetOrdinal("Woonplaats");
                        Int32 VersiePos     = rdrLeveranciers.GetOrdinal("Versie");
                        while (rdrLeveranciers.Read())
                        {
                            leveranciers.Add(new Leverancier(rdrLeveranciers.GetInt32(levNrPos),
                                                             rdrLeveranciers.GetString(naamPos),
                                                             rdrLeveranciers.GetString(adresPos),
                                                             rdrLeveranciers.GetString(postNrPos),
                                                             rdrLeveranciers.GetString(woonplaatsPos),
                                                             rdrLeveranciers.GetValue(VersiePos)));
                        }
                    }
                }
            }
            return(leveranciers);
        }
예제 #9
0
        public Int32 Eindejaarskorting(Decimal korting)
        {
            var dbManager = new TuincentrumDbManager();

            using (var conTuincentrum = dbManager.GetConnection())
            {
                using (var comEindejaarskorting = conTuincentrum.CreateCommand())
                {
                    comEindejaarskorting.CommandType = CommandType.StoredProcedure;
                    comEindejaarskorting.CommandText = "Eindejaarskorting";

                    DbParameter parKorting = comEindejaarskorting.CreateParameter();
                    parKorting.ParameterName = "@korting";
                    parKorting.Value         = korting;
                    comEindejaarskorting.Parameters.Add(parKorting);

                    conTuincentrum.Open();
                    return(comEindejaarskorting.ExecuteNonQuery());
                }
            }
        }
예제 #10
0
        public Int32 Toevoegen(string Naam, string Adres, string PostNr, string Woonplaats)
        {
            var dbManger = new TuincentrumDbManager();

            using (var conTuincentrum = dbManger.GetConnection())
            {
                using (var comToevoegen = conTuincentrum.CreateCommand())
                {
                    comToevoegen.CommandType = CommandType.StoredProcedure;
                    comToevoegen.CommandText = "Toevoegen";

                    DbParameter parNaam = comToevoegen.CreateParameter();
                    parNaam.ParameterName = "@Naam";
                    parNaam.Value         = Naam;
                    comToevoegen.Parameters.Add(parNaam);

                    DbParameter parAdres = comToevoegen.CreateParameter();
                    parAdres.ParameterName = "@Adres";
                    parAdres.Value         = Adres;
                    comToevoegen.Parameters.Add(parAdres);

                    DbParameter parPostNr = comToevoegen.CreateParameter();
                    parPostNr.ParameterName = "@PostNr";
                    parPostNr.Value         = PostNr;
                    comToevoegen.Parameters.Add(parPostNr);

                    DbParameter parWoonplaats = comToevoegen.CreateParameter();
                    parWoonplaats.ParameterName = "@Woonplaats";
                    parWoonplaats.Value         = Woonplaats;
                    comToevoegen.Parameters.Add(parWoonplaats);

                    conTuincentrum.Open();
                    Int32 levNr = Convert.ToInt32(comToevoegen.ExecuteScalar());
                    return(levNr);
                }
            }
        }
예제 #11
0
        public List <Leverancier> SchrijfVerwijderingen(List <Leverancier> leveranciers)
        {
            var nietVerwijderdeLeveranciers = new List <Leverancier>();
            var manager = new TuincentrumDbManager();

            using (var conTuincentrum = manager.GetConnection())
            {
                using (var comDelete = conTuincentrum.CreateCommand())
                {
                    comDelete.CommandType = CommandType.Text;
                    comDelete.CommandText = "delete from Leveranciers where LevNr=@levnr";

                    var parLevNr = comDelete.CreateParameter();
                    parLevNr.ParameterName = "@levnr";
                    comDelete.Parameters.Add(parLevNr);

                    conTuincentrum.Open();
                    foreach (Leverancier eenLeverancier in leveranciers)
                    {
                        try
                        {
                            parLevNr.Value = eenLeverancier.LevNr;
                            if (comDelete.ExecuteNonQuery() == 0)
                            {
                                nietVerwijderdeLeveranciers.Add(eenLeverancier);
                            }
                        }
                        catch (Exception)
                        {
                            nietVerwijderdeLeveranciers.Add(eenLeverancier);
                        }
                    }
                }
            }
            return(nietVerwijderdeLeveranciers);
        }
예제 #12
0
        public PlantInfo PlantInfoRaadplegen(int plantNr)
        {
            var dbManager = new TuincentrumDbManager();

            using (var conTuincentrum = dbManager.GetConnection())
            {
                using (var comInfo = conTuincentrum.CreateCommand())
                {
                    comInfo.CommandType = CommandType.StoredProcedure;
                    comInfo.CommandText = "PlantInfoRaadplegen";

                    var parPlantNr = comInfo.CreateParameter();
                    parPlantNr.ParameterName = "@PlantNr";
                    parPlantNr.Value         = plantNr;
                    comInfo.Parameters.Add(parPlantNr);

                    var parPlantNaam = comInfo.CreateParameter();
                    parPlantNaam.ParameterName = "@Plantnaam";
                    parPlantNaam.DbType        = DbType.String;
                    parPlantNaam.Size          = 30;
                    parPlantNaam.Direction     = ParameterDirection.Output;
                    comInfo.Parameters.Add(parPlantNaam);

                    var parSoort = comInfo.CreateParameter();
                    parSoort.ParameterName = "@Soort";
                    parSoort.DbType        = DbType.String;
                    parSoort.Size          = 10;
                    parSoort.Direction     = ParameterDirection.Output;
                    comInfo.Parameters.Add(parSoort);

                    var parLevNaam = comInfo.CreateParameter();
                    parLevNaam.ParameterName = "@Leveranciersnaam";
                    parLevNaam.DbType        = DbType.String;
                    parLevNaam.Size          = 30;
                    parLevNaam.Direction     = ParameterDirection.Output;
                    comInfo.Parameters.Add(parLevNaam);

                    var parKleur = comInfo.CreateParameter();
                    parKleur.ParameterName = "@Kleur";
                    parKleur.DbType        = DbType.String;
                    parKleur.Size          = 10;
                    parKleur.Direction     = ParameterDirection.Output;
                    comInfo.Parameters.Add(parKleur);

                    var parKostprijs = comInfo.CreateParameter();
                    parKostprijs.ParameterName = "@Kostprijs";
                    parKostprijs.DbType        = DbType.Currency;
                    parKostprijs.Direction     = ParameterDirection.Output;
                    comInfo.Parameters.Add(parKostprijs);

                    conTuincentrum.Open();
                    comInfo.ExecuteNonQuery();
                    if (parPlantNaam.Value.Equals(DBNull.Value))
                    {
                        throw new Exception("Plant bestaat niet");
                    }
                    else
                    {
                        return(new PlantInfo((string)parPlantNaam.Value, (string)parSoort.Value, (string)parLevNaam.Value, (string)parKleur.Value, (Decimal)parKostprijs.Value));
                    }
                }
            }
        }