Example #1
0
        private async Task handleWhenThereAreDuplicateDates(FitbitEntry fitbitEntry)
        {
            if (!this.mergeAll)
            {
                var duplicateEntryDialog =
                    new DuplicateEntryFoundDialog("There are other entries on " + fitbitEntry.Date);
                await duplicateEntryDialog.OpenDialog();

                switch (duplicateEntryDialog.Result)
                {
                case DuplicateEntryFoundDialog.MyResult.Skip:
                    break;

                case DuplicateEntryFoundDialog.MyResult.Replace:
                    this.entriesToReplace.Add(fitbitEntry);
                    break;

                case DuplicateEntryFoundDialog.MyResult.SkipAll:
                    this.skipAll = true;
                    break;

                case DuplicateEntryFoundDialog.MyResult.Merge:
                    this.addToFitbitCollection(fitbitEntry);
                    break;

                case DuplicateEntryFoundDialog.MyResult.MergeAll:
                    this.addToFitbitCollection(fitbitEntry);
                    this.mergeAll = true;
                    break;
                }
            }
        }
Example #2
0
 private void addToFitbitCollection(FitbitEntry fitbitEntry)
 {
     if (!this.duplicatedDatesNotToAdd.Contains(fitbitEntry.Date))
     {
         this.fitbitJournal.AddEntry(fitbitEntry);
     }
 }
Example #3
0
 private void handleWhenReplacing(FitbitEntry fitbitEntry)
 {
     if (this.entriesToReplace.Contains(fitbitEntry))
     {
         this.fitbitJournal.ReplaceMatchingDateEntries(fitbitEntry);
     }
 }
        private void addEntry_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                var entryDate             = this.date.Date.Date;
                var entrySteps            = int.Parse(this.steps.Text);
                var entryDistance         = double.Parse(this.distance.Text);
                var entryCaloriesBurned   = int.Parse(this.caloriesBurned.Text);
                var entryFloors           = int.Parse(this.floors.Text);
                var entryActivityCalories = int.Parse(this.activityCalories.Text);
                var entryActiveMinutes    = MinuteConverter.ConvertMinutesToTimeSpan(int.Parse(this.activeMinutes.Text));

                var fitbitEntry = new FitbitEntry(entryDate, entrySteps, entryDistance, entryCaloriesBurned,
                                                  entryFloors, entryActivityCalories, entryActiveMinutes);
                this.FitbitEntry = fitbitEntry;
                this.doneAddingEntry_OnClick(sender, e);
            }

            catch (FormatException)
            {
                this.handleWhenNoEntryCreated(sender, e);
            }
            catch (ArgumentException)
            {
                this.handleWhenNoEntryCreated(sender, e);
            }
        }
        public void WhenOnlyOneInJournalAndMatches()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testEntry   = new FitbitEntry(DateTime.Today, 500, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry);

            Assert.AreEqual(1, testJournal.CountDaysWithStepsOver(200));
        }
        public void WhenAdd1CountShouldBe1()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testEntry   = new FitbitEntry(DateTime.Today, 500, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry);

            Assert.AreEqual(1, testJournal.Count);
        }
        public void WhenOnlyOneInJournalAndMatches()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testEntry   = new FitbitEntry(DateTime.Today, 500, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry);

            Assert.AreEqual(1, testJournal.CountPerMonthAndYear(DateTime.Today.Month, DateTime.Today.Year));
        }
Example #8
0
        public void WhenEntryInJournalMatches()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testDate    = new DateTime(2017, 11, 2);
            var testEntry1  = new FitbitEntry(testDate, 1234, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry1);

            Assert.AreEqual(testDate, testJournal.FindDateBasedOnSteps(1234));
        }
        public void WhenContainsDate()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testDate    = new DateTime(2017, 11, 2);
            var testEntry1  = new FitbitEntry(testDate, 500, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry1);

            Assert.AreEqual(true, testJournal.ContainsDate(testDate));
        }
        public void WhenEntryInJournalMatches()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testDate    = new DateTime(2017, 11, 2);
            var testEntry1  = new FitbitEntry(testDate, 500, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry1);

            Assert.AreEqual(500, testJournal.GetEntryByDate(testDate).Steps);
        }
Example #11
0
 private async Task manageFitbitEntry(FitbitEntry fitbitEntry)
 {
     if (this.mergeAll)
     {
         this.fitbitJournal.AddEntry(fitbitEntry);
     }
     else if (!this.skipAll)
     {
         await this.handleWhenFitbitContainsDate(fitbitEntry);
     }
 }
        public void WhenReplaceActivityCaloriesOfFirst()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testDate    = new DateTime(2017, 11, 2);
            var testEntry1  = new FitbitEntry(testDate, 500, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry2  = new FitbitEntry(testDate, 500, 75.0, 310, 1, 72, new TimeSpan());

            testJournal.AddEntry(testEntry1);
            testJournal.ReplaceMatchingDateEntries(testEntry2);

            Assert.AreEqual(72, testJournal.GetEntryByDate(testDate).ActivityCalories);
        }
        public void When1EntryInMultipleMatchesHasProperDate()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testDate1   = new DateTime(2017, 11, 2);
            var testDate2   = new DateTime(2016, 10, 20);
            var testEntry1  = new FitbitEntry(testDate1, 500, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry2  = new FitbitEntry(testDate2, 2000, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry1);
            testJournal.AddEntry(testEntry2);

            Assert.AreEqual(testDate2, testJournal.GetEntryByDate(testDate2).Date);
        }
        public void WhenMultiplesInJournalAndNoneMatch()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testEntry   = new FitbitEntry(DateTime.Today, 1000, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry2  = new FitbitEntry(DateTime.Today, 2000, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry3  = new FitbitEntry(DateTime.Today, 3000, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry);
            testJournal.AddEntry(testEntry2);
            testJournal.AddEntry(testEntry3);

            Assert.AreEqual(0, testJournal.CountDaysWithStepsOver(5000));
        }
Example #15
0
        private static string getFitbitEntryOutput(string fitbitFileOutput, FitbitEntry entry)
        {
            var currentDate = entry.Date.ToString("d", CultureInfo.CurrentCulture);

            fitbitFileOutput += currentDate + ",";
            fitbitFileOutput += entry.CaloriesBurned + ",";
            fitbitFileOutput += entry.Steps + ",";
            fitbitFileOutput += entry.Distance + ",";
            fitbitFileOutput += entry.Floors + ",";
            fitbitFileOutput += entry.ActivityCalories + ",";
            fitbitFileOutput += entry.ActiveMinutes + Environment.NewLine;
            return(fitbitFileOutput);
        }
Example #16
0
        private async Task handleWhenFitbitContainsDate(FitbitEntry fitbitEntry)
        {
            if (this.fitbitJournal.ContainsDate(fitbitEntry.Date))
            {
                await this.handleWhenThereAreDuplicateDates(fitbitEntry);

                this.handleWhenReplacing(fitbitEntry);
            }
            else
            {
                this.fitbitJournal.AddEntry(fitbitEntry);
            }
        }
        public void WhenAdd4CountIs4()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testEntry   = new FitbitEntry(DateTime.Today, 500, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry2  = new FitbitEntry(DateTime.Today, 1000, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry3  = new FitbitEntry(DateTime.Today, 1200, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry4  = new FitbitEntry(DateTime.Today, 800, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry);
            testJournal.AddEntry(testEntry2);
            testJournal.AddEntry(testEntry3);
            testJournal.AddEntry(testEntry4);

            Assert.AreEqual(4, testJournal.Count);
        }
Example #18
0
        public void WhenMultipleInJournalAndMultipleMatch()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testEntry   = new FitbitEntry(DateTime.Today, 500, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry2  = new FitbitEntry(DateTime.Today, 1000, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry3  = new FitbitEntry(DateTime.Today, 1200, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry4  = new FitbitEntry(DateTime.Today, 800, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry);
            testJournal.AddEntry(testEntry2);
            testJournal.AddEntry(testEntry3);
            testJournal.AddEntry(testEntry4);

            Assert.AreEqual(2, testJournal.CountDaysWithStepsBetween(2, 900));
        }
        public void WhenContainsDateFromMultipleInJounral()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testDate1   = new DateTime(2017, 11, 2);
            var testDate2   = new DateTime(2016, 10, 20);
            var testDate3   = new DateTime(2016, 9, 4);
            var testEntry1  = new FitbitEntry(testDate1, 500, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry2  = new FitbitEntry(testDate2, 2000, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry3  = new FitbitEntry(testDate3, 900, 0.5, 400, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry1);
            testJournal.AddEntry(testEntry2);
            testJournal.AddEntry(testEntry3);

            Assert.AreEqual(true, testJournal.ContainsDate(testDate2));
        }
Example #20
0
        public void When1EntryInMultipleMatches()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testDate1   = new DateTime(2017, 11, 2);
            var testDate2   = new DateTime(2016, 10, 20);
            var testDate3   = new DateTime(2014, 6, 14);
            var testEntry1  = new FitbitEntry(testDate1, 500, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry2  = new FitbitEntry(testDate2, 2000, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry3  = new FitbitEntry(testDate3, 7300, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry1);
            testJournal.AddEntry(testEntry2);
            testJournal.AddEntry(testEntry3);

            Assert.AreEqual(testDate2, testJournal.FindDateBasedOnSteps(2000));
        }
        public void WhenMultipleDifferentYearAndMonthInJournalAndOneMatch()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testDate1   = new DateTime(2015, 9, 2);
            var testDate2   = new DateTime(2016, 10, 5);
            var testDate3   = new DateTime(2017, 11, 3);

            var testEntry  = new FitbitEntry(testDate1, 1000, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry2 = new FitbitEntry(testDate2, 2000, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry3 = new FitbitEntry(testDate3, 3000, 2.0, 310, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry);
            testJournal.AddEntry(testEntry2);
            testJournal.AddEntry(testEntry3);

            Assert.AreEqual(1, testJournal.CountPerMonthAndYear(10, 2016));
        }
        public void WhenAllEntriesMatchFromMultipleInJournal()
        {
            var testJournal = new FitbitAnalysis_Phillip_Morris.Model.FitbitJournal();
            var testDate1   = new DateTime(2016, 11, 2);
            var testDate2   = new DateTime(2016, 10, 20);
            var testDate3   = new DateTime(2016, 9, 4);
            var testEntry1  = new FitbitEntry(testDate1, 500, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry2  = new FitbitEntry(testDate2, 2000, 2.0, 310, 1, 155, new TimeSpan());
            var testEntry3  = new FitbitEntry(testDate3, 900, 0.5, 400, 1, 155, new TimeSpan());

            testJournal.AddEntry(testEntry1);
            testJournal.AddEntry(testEntry2);
            testJournal.AddEntry(testEntry3);

            var resultJournal = testJournal.GetEntriesByYear(2016);

            Assert.AreEqual(3, resultJournal.Count);
        }