private List <TotalDispalyRecord> GetTotalDisplayRecords() { List <TotalDispalyRecord> record = new List <TotalDispalyRecord>(); TotalDispalyRecord total = new TotalDispalyRecord { AccountName = "总计", RecordDate = DateTime.Now, Asset = 0, Debt = 0, }; if (db.Records == null || db.Records.Count() == 0) { return(record); } var list = new List <Record>(); var s = db.Records.AsEnumerable().GroupBy(x => x.AccountId); var e = s.GetEnumerator(); while (e.MoveNext()) { var r = e.Current.OrderByDescending(y => y.RecordDate).First(); list.Add(r); } //s.ToList().ForEach((x) => //{ // var r = x.OrderByDescending(y => y.RecordDate).First(); // list.Add(r); //}); list.OrderBy(x => x.Account.Priority).ToList().ForEach(r => { total.Asset += r.Asset; total.Debt += r.Debt; bool zero = r.Real == 0 && r.Asset == 0 && cbHideZero.IsChecked.Value; if (!zero) { record.Add(new TotalDispalyRecord { RecordDate = r.RecordDate, Asset = r.Asset, Debt = r.Debt, Info = r.Info, AccountName = r.Account.Name }); } } ); record.Add(total); return(record); }
private List <TotalDispalyRecord> GetTotalDisplayRecords(DateTime dt) { List <TotalDispalyRecord> rec = new List <TotalDispalyRecord>(); TotalDispalyRecord total = new TotalDispalyRecord { AccountName = "总计", RecordDate = dt, Asset = 0, Debt = 0, }; if (db.Records == null || db.Records.Count() == 0) { return(rec); } List <TotalDispalyRecord> record = new List <TotalDispalyRecord>(); var s = db.Records.Where(x => dt.CompareTo(x.RecordDate) > 0).GroupBy(x => x.AccountId); s.ToList().ForEach((x) => { var r = x.OrderByDescending(y => y.RecordDate).First(); total.Asset += r.Asset; total.Debt += r.Debt; record.Add(new TotalDispalyRecord { RecordDate = r.RecordDate, Asset = r.Asset, Debt = r.Debt, Info = r.Info, AccountName = r.Account.Name }); }); record.Add(total); record.OrderBy(x => x.AccountName); // 排序 db.Accounts.OrderBy(x => x.Priority).ToList().ForEach(x => { rec.Add(record.Find(y => x.Name == y.AccountName)); }); return(rec); }