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);
            }
        }
        public void AddorUpdateReward(List <ChildReward> rewards)
        {
            using (var db = new ModelKids())
            {
                foreach (var m in rewards)
                {
                    var r = db.ChildReward.Where(a => a.GoalId == m.GoalId && a.ChildId == m.ChildId).Include(i => i.Goal).FirstOrDefault();
                    if (r != null)
                    {
                        r.PointsAllocated    = m.PointsAllocated;
                        r.RewardRequested    = m.RewardRequested;
                        r.RewardReceived     = m.RewardReceived;
                        r.RewardComplete     = m.RewardComplete;
                        r.RewardReceivedDate = m.RewardReceivedDate;

                        db.SaveChanges();
                        // AddorUpdateRewardAwarded(r);
                    }
                    else // if no existing record on rewards
                    {
                        if (m.PointsAllocated > 0) // if points allocated create entry.
                        {
                            db.ChildReward.Add(m);
                            db.SaveChanges();

                            //AddorUpdateRewardAwarded(m);
                        }
                    }
                }
            }

            AddorUpdateRewardAwarded(rewards);

            return;
        }
        public List <ChildGuageViewModel> GetPointsValueForAll(string parent)
        {
            using (var db = new ModelKids())
            {
                List <ChildGuageViewModel> guagelist = new List <ChildGuageViewModel>();
                var allchildren = db.Children.Where(a => a.ParentUser == parent).ToList();
                foreach (var c in allchildren)
                {
                    var e      = db.PointAllocation.Where(a => a.ChildId == c.ChildId && a.Saved != true && a.Approved == true);
                    var points = e.Sum(a => (int?)a.Points);
                    //var banked = db.PointAllocation.Where(a => a.ChildId == c.ChildId && a.Saved == true && a.Approved == true);
                    //var banksum = banked.Sum(a => (int?)a.Points);
                    var allocatedPoints    = GetAllChildRewardForId(c.ChildId).Where(a => a.RewardComplete == false).Sum(a => a.PointsAllocated);
                    var pointstobereviewed = db.PointAllocation.Where(a => a.ChildId == c.ChildId && a.Approved == false);
                    var pointsnotreviewed  = pointstobereviewed.Sum(a => (int?)a.Points);

                    var cg = new ChildGuageViewModel();
                    cg.ChildId           = c.ChildId;
                    cg.ChildName         = c.ChildName;
                    cg.GuagePoints       = points.GetValueOrDefault();
                    cg.Image             = c.UserImage;
                    cg.BankedPoints      = c.BankedPoints;
                    cg.AllocatedPoints   = allocatedPoints;
                    cg.NotReviewedPoints = pointsnotreviewed.GetValueOrDefault();
                    guagelist.Add(cg);
                }
                return(guagelist);
            }
        }
        public List <int> GetPointsforDayGraph(int ChildId)
        {
            using (var db = new ModelKids())
            {
                var today    = DateTime.Today;
                var dayend   = today.AddDays(1).AddSeconds(-1);
                var daystart = today;
                var points   = db.PointAllocation.Where(a => a.ChildId == ChildId && a.AllocationDate >= daystart && a.AllocationDate <= dayend).OrderByDescending(a => a.AllocationDate);

                if (points.Count() > 0)
                {
                    var cnt          = points.Count();
                    var rtnary       = new int[points.Count()];
                    int nextidx      = 0;
                    int currentrange = 0;

                    foreach (var p in points)
                    {
                        currentrange    = currentrange + p.Points;
                        rtnary[nextidx] = currentrange;
                        nextidx         = nextidx + 1;
                    }

                    return(rtnary.ToList());
                }
                return(null);
            }
        }
        public List <PointsGraph> GetGroupedPointsforWeekGraph(int ChildId)
        {
            var glist = new List <PointsGraph>();

            using (var db = new ModelKids())
            {
                var today    = DateTime.Today;
                var dayend   = today.AddDays(1).AddSeconds(-1);
                var daystart = DateTime.Now;
                var weekend  = DateTime.Today.AddDays(-7);
                var points   = db.PointAllocation.Where(a => a.ChildId == ChildId && a.AllocationDate >= weekend && a.AllocationDate <= dayend).OrderByDescending(a => a.AllocationDate);
                //var points2 = db.PointAllocation.Where(a => a.ChildId == ChildId && a.AllocationDate >= daystart && a.AllocationDate <= dayend).OrderByDescending(a => a.AllocationDate).ToList();
                //var grouped = points.GroupBy(a => a.PointId).Select( p => new { id = p.PointId, point = p.Points }) ;
                var grouped = points.GroupBy(a => a.BehaviourId);

                foreach (var g in grouped)
                {
                    var sum   = g.Sum(a => a.Points);
                    var count = g.Count();
                    var name  = db.Behaviour.First(a => a.BehaviourId == g.Key).BehaviourName;
                    glist.Add(new PointsGraph {
                        name = name, count = count, sum = sum
                    });
                }
            }

            return(glist);
        }
        public List <int> GetPointsforLastMonth(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);

                if (points.Count() > 0)
                {
                    var cnt    = points.Count();
                    var rtnary = new int[points.Count()];
                    //var currentrange = points.First().Points;
                    int nextidx = 0;
                    //rtnary[nextidx] = currentrange;
                    int currentrange = 0;

                    foreach (var p in points)
                    {
                        currentrange    = currentrange + p.Points;
                        rtnary[nextidx] = currentrange;
                        nextidx         = nextidx + 1;
                    }

                    return(rtnary.ToList());
                }
            }
            return(null);
        }
Example #8
0
 public IHttpActionResult Get(int id, int lastpointid)
 {
     using (var db = new ModelKids())
     {
         var allPoints = db.PointAllocation.Where(a => a.ChildId == id && a.Approved == true && a.Saved == false && a.PointId > lastpointid).ToList();
         return(Ok(allPoints));
     }
 }
 public IEnumerable <Behaviour2> GetBehaviours2()
 {
     using (var db = new ModelKids())
     {
         var allBehaviour = db.Behaviour2.ToList();
         return(allBehaviour);
     }
 }
 public Contributor GetContributorForCode(string code, string parent)
 {
     using (var db = new ModelKids())
     {
         var rtn = db.Contributor.Where(a => a.ContributorAuthCode == code && a.ParentUser == parent).FirstOrDefault();
         return(rtn);
     }
 }
 public Contributor GetContributorForId(int id)
 {
     using (var db = new ModelKids())
     {
         var rtn = db.Contributor.Where(a => a.ContributorId == id).FirstOrDefault();
         return(rtn);
     }
 }
 public IEnumerable <Contributor> GetContributors(string parent)
 {
     using (var db = new ModelKids())
     {
         var allContributors = db.Contributor.Where(a => a.ParentUser == parent).ToList();
         return(allContributors);
     }
 }
 public IEnumerable <Child> GetChildren()
 {
     using (var db = new ModelKids())
     {
         var allKids = db.Children.ToList();
         return(allKids);
     }
 }
 public IEnumerable <PointAllocation> GetPointsAndDescriptionForContributorId(int id)
 {
     using (var db = new ModelKids())
     {
         var allPoints = db.PointAllocation.Where(a => a.ContributorId == id).Include(i => i.Behaviour).ToList();
         return(allPoints);
     }
 }
 public List <ChildReward> GetAllChildRewardForId(int ChildId)
 {
     using (var db = new ModelKids())
     {
         var rtn = db.ChildReward.Where(a => a.ChildId == ChildId).ToList();
         return(rtn);
     }
 }
 public Child GetChildForId(int id)
 {
     using (var db = new ModelKids())
     {
         var kid = db.Children.Where(a => a.ChildId == id).FirstOrDefault();
         return(kid);
     }
 }
 public List <RewardAwarded> GetRewardAwardedForId(int ChildId)
 {
     using (var db = new ModelKids())
     {
         var rtn = db.RewardAwarded.Where(a => a.ChildId == ChildId).ToList();
         return(rtn);
     }
 }
 public IEnumerable <Goal> GetGoals()
 {
     using (var db = new ModelKids())
     {
         var allGoals = db.Goals.ToList();
         return(allGoals);
     }
 }
Example #19
0
 private IEnumerable <PointAllocation> GetPointsAndDescriptionForAllNotFiltered()
 {
     using (var db = new ModelKids())
     {
         var allPoints = db.PointAllocation.Include(i => i.Behaviour).ToList();
         return(allPoints);
     }
 }
Example #20
0
 private IEnumerable <PointAllocation> GetPointsAndDescriptionForIdNotFiltered(int id)
 {
     using (var db = new ModelKids())
     {
         var allPoints = db.PointAllocation.Where(a => a.ChildId == id).Include(i => i.Behaviour).ToList();
         return(allPoints);
     }
 }
Example #21
0
 public IHttpActionResult Get(int id)
 {
     using (var db = new ModelKids())
     {
         var allPoints = db.PointAllocation.Where(a => a.ChildId == id && a.Approved == true && a.Saved == false).ToList().OrderByDescending(a => a.AllocationDate);
         return(Ok(allPoints));
     }
 }
 public ChildReward GetChildRewardForId(int ChildId, int GoalId)
 {
     using (var db = new ModelKids())
     {
         var rtn = db.ChildReward.Where(a => a.ChildId == ChildId && a.GoalId == GoalId).Include(i => i.Goal).FirstOrDefault();
         return(rtn);
     }
 }
 public IEnumerable <PointAllocation> GetPointsForId(int id)
 {
     using (var db = new ModelKids())
     {
         var allPoints = db.PointAllocation.Where(a => a.ChildId == id && a.Saved != true).ToList();
         return(allPoints);
     }
 }
 public IEnumerable <Points2> GetPoints2ForId(int id)
 {
     using (var db = new ModelKids())
     {
         var test      = db.Points2.Where(a => a.ChildId == id).Include(a => a.Behaviour2).ToList();
         var allPoints = db.Points2.Where(a => a.ChildId == id).ToList();
         return(allPoints);
     }
 }
 public int GetPointsValueForId(int id)
 {
     using (var db = new ModelKids())
     {
         var e      = db.PointAllocation.Where(a => a.ChildId == id && a.Saved != true && a.Approved == true);
         var points = e.Sum(a => (int?)a.Points);
         return(points.GetValueOrDefault());
     }
 }
 public IEnumerable <Behaviour> GetBadBehaviour()
 {
     using (var db = new ModelKids())
     {
         // var allBehaviour = db.Behaviour.Where(a => a.BehaviourPoints < 0).Include(b => b.Points).ToList();
         var allBehaviour = db.Behaviour.Where(a => a.BehaviourPoints < 0).ToList();
         return(allBehaviour);
     }
 }
        // public IEnumerable<string> Get()
        public IHttpActionResult Get(int id)
        {
            using (var db = new ModelKids())
            {
                var dailySummery      = new DailySummary();
                var allPoints         = db.PointAllocation.Where(a => a.ChildId == id && a.Approved == true && a.Saved == false).Sum(a => (int?)a.Points);
                var negativePoints    = db.PointAllocation.Where(a => a.ChildId == id && a.Approved == true && a.Saved == false && a.Points < 0).Sum(a => (int?)a.Points);
                var plusPoints        = db.PointAllocation.Where(a => a.ChildId == id && a.Approved == true && a.Saved == false && a.Points > 0).Sum(a => (int?)a.Points);
                var notApprovedPoints = db.PointAllocation.Where(a => a.ChildId == id && a.Approved == true && a.Saved == false).Sum(a => (int?)a.Points);
                dailySummery.ChildId     = id;
                dailySummery.ChildName   = db.Children.Where(a => a.ChildId == id).First().ChildName;
                dailySummery.Date        = DateTime.Now;
                dailySummery.MinusPoints = negativePoints.GetValueOrDefault();
                dailySummery.PlusPoints  = plusPoints.GetValueOrDefault();
                dailySummery.TotalPoints = allPoints.GetValueOrDefault();
                switch (allPoints)
                {
                case int c when allPoints < -200:
                    dailySummery.Status = "Very Naughty"; break;

                case int c when allPoints < -150:
                    dailySummery.Status = "Naughty"; break;

                case int c when allPoints < -100:
                    dailySummery.Status = "Not good"; break;

                case int c when allPoints < -50:
                    dailySummery.Status = "Can do better"; break;

                case int c when allPoints < 0:
                    dailySummery.Status = "Need Improvement"; break;

                case int c when allPoints > 250:
                    dailySummery.Status = "Star"; break;

                case int c when allPoints > 200:
                    dailySummery.Status = "Fantastic"; break;

                case int c when allPoints > 150:
                    dailySummery.Status = "Great"; break;

                case int c when allPoints > 100:
                    dailySummery.Status = "Good"; break;

                case int c when allPoints > 50:
                    dailySummery.Status = "Getting Better"; break;

                case int c when allPoints > 0:
                    dailySummery.Status = "Can Achieve More"; break;

                default: dailySummery.Status = "No Points"; break;
                }

                return(Ok(dailySummery));
            }
            // return new string[] { "value1", "value2" };
        }
 public void UpdateContributorImage(int id, string imageuri)
 {
     using (var db = new ModelKids())
     {
         var val = db.Contributor.Where(a => a.ContributorId == id).First();
         val.ContributorImage = imageuri;
         db.SaveChanges();
     }
 }
 // public IEnumerable<string> Get()
 public IHttpActionResult Get()
 {
     using (var db = new ModelKids())
     {
         var allKids = db.Children.ToList();
         return(Ok(allKids));
     }
     // return new string[] { "value1", "value2" };
 }
 public void UpdateChildImage(int id, string imageuri)
 {
     using (var db = new ModelKids())
     {
         var val = db.Children.Where(a => a.ChildId == id).First();
         val.UserImage = imageuri;
         db.SaveChanges();
     }
 }