コード例 #1
0
        public static void FilterActivityStats(List <ActivityStatsHeader <ActivityStatsData> > p_list)
        {
            foreach (ActivityStatsHeader <ActivityStatsData> header in p_list)
            {
                ActivityStatsHeader <ActivityStatsData> headerHolder = ActivityStatsHeader <ActivityStatsData> .CopyData(header);

                header.Clear();
                foreach (ActivityStatsData cell in headerHolder)
                {
                    if (!header.Contains(cell.ActType))
                    {
                        header.Add(cell);
                    }
                    else
                    {
                        ActivityStatsData filtered = header.GetAny(cell.ActType);
                        filtered.Steps    += cell.Steps;
                        filtered.Distance += cell.Distance;
                        filtered.Calories += cell.Calories;
                        filtered.Altitude += cell.Altitude;
                    }
                }

                // update data for sub slider
                foreach (ActivityStatsData cell in header)
                {
                    cell.UpdateData();
                }
            }
        }
コード例 #2
0
        /****************************************************************
         * Helpers
         **/
        public static List <ActivityStatsHeader <ActivityStatsData> > ListFrom(List <ActivityStatsData> p_activities)
        {
            List <ActivityStatsHeader <ActivityStatsData> > list = new List <ActivityStatsHeader <ActivityStatsData> >();
            // string = (DAY OF WEEK)_(DATE) | ActivityStatsHeader::DateString
            Dictionary <string, ActivityStatsHeader <ActivityStatsData> > mapData = new Dictionary <string, ActivityStatsHeader <ActivityStatsData> >();

            foreach (ActivityStatsData cellData in p_activities)
            {
                DateTime epoch   = KreyosUtils.ToDateTime((long)cellData.EpochTime);
                string   dateKey = KreyosUtils.DateString(epoch);

                if (!mapData.ContainsKey(dateKey))
                {
                    ActivityStatsHeader <ActivityStatsData> headerData = new ActivityStatsHeader <ActivityStatsData>((uint)cellData.EpochTime);
                    mapData.Add(dateKey, headerData);
                    list.Add(headerData);
                }

                mapData[dateKey].Add(cellData);
                mapData[dateKey].UpdateTotalValues();
                Debug.WriteLine("MainPage::ListFrom epoch:" + epoch + " dateKey:" + dateKey + " count:" + list.Count + " headCount:" + mapData[dateKey].Count + " unix:" + (long)cellData.EpochTime);
            }

            return(list);
        }
コード例 #3
0
        public static ActivityStatsHeader <T> CopyData(ActivityStatsHeader <T> p_list)
        {
            ActivityStatsHeader <T> dup = new ActivityStatsHeader <T>(p_list.UnixTime);

            foreach (T cell in p_list)
            {
                dup.Add(cell);
            }

            return(dup);
        }