private void averageStepsTakenStatement(FitbitJournal currentCategoryManager)
        {
            var averageStepsTaken = "The average number of steps take all year: " +
                                    Math.Round(currentCategoryManager.AverageSteps, 2).ToString("N");

            this.outputStatements.Add(averageStepsTaken);
        }
        /// <summary>
        ///     Adds the last boundary statement.
        /// </summary>
        /// <param name="lastBoundary">The last boundary.</param>
        /// <param name="currentFitbitJournal"></param>
        private void addLastBoundaryStatement(int lastBoundary, FitbitJournal currentFitbitJournal)
        {
            var boundarySix = "Days with " + lastBoundary.ToString(Numberformat) + " or more: " + currentFitbitJournal
                              .CountDaysWithStepsOver(lastBoundary).ToString(Numberformat);

            this.outputStatements.Add(boundarySix);
        }
        private void addMonthlyEntryData(FitbitJournal monthlyCategoryManager, List <FitbitEntry> monthCollection)
        {
            foreach (var fitbitEntry in monthCollection)
            {
                var monthlyFitbitEntry = this.fitbitJournal.GetEntryByDate(fitbitEntry.Date);

                monthlyCategoryManager.AddEntry(monthlyFitbitEntry);
            }
        }
        private void addAverageActiveMinutesStatements(FitbitJournal yearlyJournal)
        {
            var entry = yearlyJournal.MostActiveMinutes;
            var mostActiveMinutesStatement = "Most Active minutes: " +
                                             entry.ActiveMinutes.ToString(Timespanformat) + " occurred on " +
                                             entry.Date.GetDateTimeFormats()[0];

            this.outputStatements.Add(mostActiveMinutesStatement);
        }
 private void addMonthlyStatisticsStatements(FitbitJournal monthlyCategoryManager)
 {
     if (!monthlyCategoryManager.IsEmpty())
     {
         this.addMaxAndMinStepStatements(monthlyCategoryManager.MaxSteps,
                                         monthlyCategoryManager.MinSteps);
         this.averageStepsTakenStatement(monthlyCategoryManager);
         monthlyCategoryManager.ClearEntries();
     }
 }
        /// <summary>
        ///     Adds the step statements.
        /// </summary>
        private void addStepStatements(FitbitJournal currentFitbitJournal)
        {
            var daysWithOverTenThousandSteps =
                "The number of days with more than " + this.currentThreshold + " steps: " +
                this.fitbitJournal.CountDaysWithStepsOver(this.currentThreshold).ToString(Numberformat);

            this.addMaxAndMinStepStatements(currentFitbitJournal.MaxSteps, currentFitbitJournal.MinSteps);
            this.averageStepsTakenStatement(currentFitbitJournal);
            this.outputStatements.Add(daysWithOverTenThousandSteps);
        }
Example #7
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="MainPage" /> class.
 /// </summary>
 public MainPage()
 {
     this.InitializeComponent();
     this.fitbitJournal = new FitbitJournal();
     ApplicationView.PreferredLaunchViewSize = new Size {
         Width = ApplicationWidth, Height = ApplicationHeight
     };
     ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
     ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(ApplicationWidth, ApplicationHeight));
 }
        private void generateYearlyOutput()
        {
            var dateTime = new DateTimeFormatInfo();
            var months   = dateTime.MonthNames;
            var monthlyCategoryManager = new FitbitJournal();

            for (var yearIndex = this.fitbitJournal.FirstEntryDate.Year;
                 yearIndex <= this.fitbitJournal.LastEntryDate.Year;
                 yearIndex++)
            {
                this.outputStatements.Add(Environment.NewLine + "Yearly Overview: " + Environment.NewLine);
                this.generateYearlyBreakDown(yearIndex);
                this.outputStatements.Add(Environment.NewLine + "Monthly Breakdown: ");
                this.generateMonthlyBreakDown(yearIndex, months, monthlyCategoryManager);
            }
        }
        /// <summary>
        ///     Adds the boundary statements.
        /// </summary>
        private void addBoundaryStatements(FitbitJournal currentFitbitJournal)
        {
            var lowerBound = 1;
            var upperBound = this.currentBinSize;

            for (var index = 0; index < this.currentAmountOfCategories; index++)
            {
                if (index == 0)
                {
                    this.addDaysWithStepBetweenBoundariesStatements(lowerBound - 1, upperBound);
                }
                else if (index == this.currentAmountOfCategories - 1)
                {
                    this.addLastBoundaryStatement(lowerBound, currentFitbitJournal);
                }
                else
                {
                    this.addDaysWithStepBetweenBoundariesStatements(lowerBound, upperBound);
                }
                lowerBound += this.currentBinSize;
                upperBound += this.currentBinSize;
            }
        }
        private void generateMonthlyBreakDown(int year, string[] months, FitbitJournal monthlyFitbitJournal)
        {
            for (var month = 1; month < months.Length; month++)
            {
                var monthCollection = this.fitbitJournal.GetEntriesOrderedDatesByMonthAndYear(month, year);

                this.addMonthlyEntryData(monthlyFitbitJournal, monthCollection);
                var averageActiveMinutesStatement = "";
                if (monthCollection.Count > 0)
                {
                    var average = monthlyFitbitJournal.AverageActiveMinutes;
                    averageActiveMinutesStatement = "Average Active minutes: " + average.ToString(Timespanformat);
                }

                this.outputStatements.Add(Environment.NewLine);
                this.outputStatements.Add(months[month - 1] + " " + year + " (" +
                                          this.fitbitJournal.CountPerMonthAndYear(month, year) + " days of data)" +
                                          ": ");
                this.addMonthlyStatisticsStatements(monthlyFitbitJournal);

                this.outputStatements.Add(averageActiveMinutesStatement);
            }
        }
Example #11
0
        private async Task handleXMLFile(Stream stream)
        {
            try
            {
                var serializer = new XmlSerializer(typeof(FitbitJournal));

                using (var xmlStream = new StreamReader(stream))
                {
                    var journal = serializer.Deserialize(xmlStream);

                    this.fitbitJournal = journal as FitbitJournal;
                }
            }
            catch (Exception)
            {
                var result = await isUserContinuing();

                if (!result)
                {
                    return;
                }
            }
        }
 /// <summary>
 ///     Initializes a new instance of the <see cref="FitbitJournalOutput" /> class.
 /// </summary>
 /// <param name="fitbitJournal">The fitbit journal.</param>
 public FitbitJournalOutput(FitbitJournal fitbitJournal)
 {
     this.fitbitJournal = fitbitJournal;
 }
        /// <summary>
        ///     Parses the file.
        /// </summary>
        /// <param name="file">The file.</param>
        /// <returns></returns>
        private async Task parseFile(StorageFile file)
        {
            if (file == null)
            {
                return;
            }
            char[] seperator = { ',' };
            var    stream    = await file.OpenStreamForReadAsync();

            switch (file.FileType)
            {
            case ".csv":
                try
                {
                    using (var reader = new StreamReader(stream))
                    {
                        while (!reader.EndOfStream)
                        {
                            var line        = reader.ReadLine();
                            var input       = line.Split(seperator);
                            var fitbitEntry = Parser.ParseCsv(input);

                            await this.manageAndAddFitbitEntry(fitbitEntry, fitbitEntry.Date);
                        }
                    }
                }
                catch (Exception)
                {
                    await informTheUserOfIssue();
                }
                break;

            case ".txt":
                try
                {
                    using (var reader = new StreamReader(stream))
                    {
                        while (!reader.EndOfStream)
                        {
                            var line        = reader.ReadLine();
                            var input       = line.Split(seperator);
                            var fitbitEntry = Parser.ParseCsv(input);

                            await this.manageAndAddFitbitEntry(fitbitEntry, fitbitEntry.Date);
                        }
                    }
                }
                catch (Exception)
                {
                    await informTheUserOfIssue();
                }
                break;

            case ".xml":
                try
                {
                    var serializer = new XmlSerializer(typeof(FitbitJournal));

                    using (var xmlStream = new StreamReader(stream))
                    {
                        var journal = serializer.Deserialize(xmlStream);

                        this.fitbitJournal = journal as FitbitJournal;
                    }
                }
                catch (Exception)
                {
                    await informTheUserOfIssue();
                }
                break;
            }
        }