private void SeedDesignTimeData() { for (var i = 0; i < 1000; i++) { MeditationDiary.Add(new MeditationEntry { TimeMeditated = TenMinutes, StartTime = DateTime.Now }); } }
private void SetEntryIds(MeditationDiary diary) { for (var entryIndex = 0; entryIndex < diary.Count; entryIndex++) { diary[entryIndex].EntryId = entryIndex; } }
/// <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); } }
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; }