public List <Beleg> GetBelegByQueryData(BelegQueryData queryData, bool includeBelegPosition, bool includePayment)
        {
            List <Beleg> wrkList = new List <Beleg>();

            using (DbCommand cmd = myRepoFactory.CreateCommand()) {
                cmd.CommandText = "select * from Beleg ";
                List <string> whereConditions = genereateConditions(queryData, cmd);
                if (whereConditions.Count > 0)
                {
                    string condCombined = whereConditions.Select(w => w).Aggregate((s1, s2) => s1 + " and " + s2);
                    cmd.CommandText += "where " + condCombined;
                }
                using (DbDataReader dbDr = cmd.ExecuteReader()) {
                    while (dbDr.Read())
                    {
                        Beleg b = new Beleg();
                        b.FillEntityWithDataReader(dbDr);
                        if (includeBelegPosition)
                        {
                            FindBelegPositionenByBelegId(b.BelegId).ForEach(p => b.Positionen.Add(p));
                        }
                        if (includePayment)
                        {
                            FindBelegZahlungByBelegId(b.BelegId).ForEach(z => b.Zahlungen.Add(z));
                        }
                        wrkList.Add(b);
                    }
                }
            }

            return(wrkList);
        }
        public Beleg FindBelegById(int belegId, bool includeBelegPosition)
        {
            Beleg beleg = null;

            FillCommandParameter(FindBelegByIdCmd, new object[] { belegId });

            using (DbDataReader dbDr = FindBelegByIdCmd.ExecuteReader()) {
                if (dbDr.Read())
                {
                    beleg = new Beleg();
                    beleg.FillEntityWithDataReader(dbDr);
                    if (includeBelegPosition)
                    {
                        beleg.Positionen = FindBelegPositionenByBelegId(beleg.BelegId);
                    }
                    else
                    {
                        beleg.Positionen = new List <Belegposition>();
                    }
                    beleg.Zahlungen = FindBelegZahlungByBelegId(beleg.BelegId);
                }
            }
            return(beleg);
        }