コード例 #1
0
        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;
        }
コード例 #2
0
        //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);
            }
        }