/// <summary> /// Перечисляет запись заголовка каждой транзакции из таблицы TransactionTop, где условие возвращает true. /// </summary> /// <param name="condition">Условие записи в таблицу. Напр. (p => p.Id == record.Id)</param> /// <returns></returns> public static List <TransactionListTopEntity> ListTop(Expression <Func <TransactionTopEntity, bool> > condition) { List <TransactionListTopEntity> list = new List <TransactionListTopEntity>(); using (var db = new InventoryContext(DatabaseConnection.ConnectionString)) { var query = (from top in db.TransactionTop.Where(condition) join partn in db.Providers on top.PartnerId equals partn.Id into PartJoin from subp in PartJoin.DefaultIfEmpty() select new { Head = top, Partner = subp }); foreach (var record in query) { list.Add(new TransactionListTopEntity(record.Head, record.Partner)); } list.Sort(); } return(list); }
/// <summary> /// Lists every transaction's header record from the TransactionHeader table where the condition returns true. /// </summary> /// <param name="condition">Condition on the records of the table. Eg. (p => p.Id == record.Id)</param> /// <returns></returns> public static List <TransactionHeadListEntity> ListHead(Expression <Func <TransactionHeadEntity, bool> > condition) { List <TransactionHeadListEntity> list = new List <TransactionHeadListEntity>(); using (var db = new InventoryContext(DatabaseConnection.ConnectionString)) { // The TransactionHeadListEntity contains the // header record from the TransactionHeader table // and the partner record from the Partners table. var query = (from h in db.TransactionHeader.Where(condition) join p in db.Partners on h.PartnerId equals p.Id into PartJoin from subp in PartJoin.DefaultIfEmpty() select new { Head = h, Partner = subp }); foreach (var record in query) { list.Add(new TransactionHeadListEntity(record.Head, record.Partner)); } list.Sort(); } return(list); }