private void SeedDesignTimeData()
 {
     for (var i = 0; i < 1000; i++)
     {
         MeditationDiary.Add(new MeditationEntry { TimeMeditated = TenMinutes, StartTime = DateTime.Now });
     }
 }
Exemple #2
0
 private void SetEntryIds(MeditationDiary diary)
 {
     for (var entryIndex = 0; entryIndex < diary.Count; entryIndex++)
     {
         diary[entryIndex].EntryId = entryIndex;
     }
 }
Exemple #3
0
        /// <summary>
        /// Writes to the JSON string stored in the JSON_FILENAME.
        /// </summary>
        /// <returns></returns>
        private async void WriteJsonAsync(MeditationDiary diary)
        {
            var serializer = new DataContractJsonSerializer(typeof(MeditationDiary));

            using (var stream = await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(JSON_FILENAME,
                                                                                                  CreationCollisionOption.ReplaceExisting))
            {
                serializer.WriteObject(stream, diary);
            }
        }
Exemple #4
0
        private async void UpdateDiary()
        {
            var latestDiary = await _repository.GetAsync();

            MeditationDiary.Clear();

            foreach (var entry in latestDiary)
            {
                MeditationDiary.Add(entry);
            }

            SendDisplayDiaryMessage();
        }
        private IEnumerable<TimeMeditatedPerWeekPerYear> CalculateTimeMeditatedOverview(MeditationDiary diary)
        {
            const int MINUTES_PER_HOUR = 60;

            Func<MeditationEntry, string> weekWithYearProjector = 
                h => CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(h.StartTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday) 
                    /* Since we are grouping by the week, month and year we have to get the month belonging to the day where the week started */
                    + " (" + CalculateMonthWhereinWeekStarted(h.StartTime) + " " + h.StartTime.Year + ")";

            var hoursMeditatedPerWeeks = diary
                .GroupBy(weekWithYearProjector)
                .Select(g => {
                    var minutesMeditated = g.ToList().Sum(m => (int)m.TimeMeditated.TotalMinutes);
                    return new TimeMeditatedPerWeekPerYear
                    {
                        WeekAndYear = g.Key,
                        TimeMeditated = minutesMeditated / MINUTES_PER_HOUR + "h " + minutesMeditated % MINUTES_PER_HOUR + "m"
                    };
                });

            return hoursMeditatedPerWeeks;
        }