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); }