public async Task <List <PointsPlusNegative> > GetPlusNegativePointsforLastMonthAsync(int ChildId) { var today = DateTime.Today; var endoftoday = today.AddDays(1).AddSeconds(-1); var daystart = today; var onedayago = endoftoday.AddDays(-1); var rtnlist = new List <PointsPlusNegative>(); var lastday = endoftoday.AddMonths(-1); using (var db = new ModelKids()) { do { var points = db.PointAllocation.Where(a => a.ChildId == ChildId && a.AllocationDate >= onedayago && a.AllocationDate <= endoftoday).OrderByDescending(a => a.AllocationDate); var positive = points.Where(a => a.Points > 0).Select(a => a.Points).DefaultIfEmpty(0).Sum(); var negative = points.Where(a => a.Points < 0).Select(a => a.Points).DefaultIfEmpty(0).Sum(); var pn = new PointsPlusNegative { sumpositive = positive, sumnegative = negative }; rtnlist.Add(pn); endoftoday = endoftoday.AddDays(-1); onedayago = onedayago.AddDays(-1); } while (endoftoday > lastday); return(rtnlist); } //return null; }
//public PointsPlusNegative GetPlusNegativePointsforLastMonth(int ChildId) //{ // var today = DateTime.Today; // var endoftoday = today.AddDays(1).AddSeconds(-1); // var daystart = today; // var onemonthago = endoftoday.AddMonths(-1); // using (var db = new ModelKids()) // { // var points = db.PointAllocation.Where(a => a.ChildId == ChildId && a.AllocationDate >= onemonthago && a.AllocationDate <= endoftoday).OrderByDescending(a => a.AllocationDate); // var positive = points.Where(a => a.Points > 0).Select(a => a.Points).DefaultIfEmpty(0).Sum(); // var negative = points.Where(a => a.Points < 0).Select(a => a.Points).DefaultIfEmpty(0).Sum(); // var rtnvar = new PointsPlusNegative { sumpositive = positive, sumnegative = negative }; // return rtnvar; // } // //return null; //} public List <PointsPlusNegative> GetPlusNegativePointsforLastWeek(int ChildId) { var today = DateTime.Today; var endoftoday = today.AddDays(1).AddSeconds(-1); var daystart = today; var onedayago = endoftoday.AddDays(-1); var rtnlist = new List <PointsPlusNegative>(); using (var db = new ModelKids()) { for (int i = 0; i < 7; i++) { var points = db.PointAllocation.Where(a => a.ChildId == ChildId && a.AllocationDate >= onedayago && a.AllocationDate <= endoftoday).OrderByDescending(a => a.AllocationDate); var positive = points.Where(a => a.Points > 0).Select(a => a.Points).DefaultIfEmpty(0).Sum(); var negative = points.Where(a => a.Points < 0).Select(a => a.Points).DefaultIfEmpty(0).Sum(); var pn = new PointsPlusNegative { sumpositive = positive, sumnegative = negative }; rtnlist.Add(pn); endoftoday = endoftoday.AddDays(-1); onedayago = onedayago.AddDays(-1); } return(rtnlist); } }