Beispiel #1
0
        /// <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);
        }