private static void GenerateDayHealthReportsData(MyHealthContext context, DateTime day)
        {
            var healthReports    = new List <HealthReport>();
            var prevHeartValue   = Randomize.Next(DataInitializerValues.MinHeartValue, DataInitializerValues.MaxHeartValue);
            var prevGlucoseValue = Randomize.Next(DataInitializerValues.MinGlucoseValue, DataInitializerValues.MaxGlucoseValue);
            var prevStressValue  = Randomize.Next(DataInitializerValues.MinStressValue, DataInitializerValues.MaxStressValue);

            for (var i = DataInitializerValues.StartOfWorkingDay; i < DataInitializerValues.EndOfWorkingDay; i++)
            {
                var time = new DateTime(day.Year, day.Month, day.Day, i, 0, 0);
                var healthReportInSameHour = context.HealthReports.FirstOrDefault(hr => hr.Time == time);

                if (healthReportInSameHour != null)
                {
                    prevHeartValue   = healthReportInSameHour.Heart;
                    prevGlucoseValue = healthReportInSameHour.Glucose;
                    prevStressValue  = healthReportInSameHour.Stress;
                }
                else
                {
                    var heartValue   = DataInitializerHelpers.GenerateRandomBoolean() ? prevHeartValue + Randomize.Next(DataInitializerValues.HeartStep) : prevHeartValue - Randomize.Next(DataInitializerValues.HeartStep);
                    var glucoseValue = DataInitializerHelpers.GenerateRandomBoolean() ? prevGlucoseValue + Randomize.Next(DataInitializerValues.GlucoseStep) : prevGlucoseValue - Randomize.Next(DataInitializerValues.GlucoseStep);
                    var stressValue  = DataInitializerHelpers.GenerateRandomBoolean() ? prevStressValue + Randomize.Next(DataInitializerValues.StressStep) : prevStressValue - Randomize.Next(DataInitializerValues.StressStep);

                    healthReports.Add(new HealthReport
                    {
                        UserEmail = _defaultUserEmail,
                        Time      = time,
                        Heart     = heartValue,
                        Glucose   = glucoseValue,
                        Stress    = stressValue,
                    });

                    prevHeartValue   = heartValue;
                    prevGlucoseValue = glucoseValue;
                    prevStressValue  = stressValue;
                }
            }
            ;

            context.HealthReports.AddRange(healthReports);
            context.SaveChanges();
        }
        private static void GenerateMonthRandomData(MyHealthContext context, DateTime month)
        {
            //Generate appointments
            for (var i = 0; i < DataInitializerValues.DaysWithAppointmentsPerMonth; i++)
            {
                var day = new DateTime(month.Year, month.Month, Randomize.Next(1, DateTime.DaysInMonth(month.Year, month.Month)));

                //Avoid appointments on saturday/sunday
                day = FixAppointmentsOnWeekend(day);

                //Avoid appointments after the max day
                if (day.Date >= _maxDay.Date)
                {
                    continue;
                }

                var appointmentInSameDay = context.Appointments.FirstOrDefault(a => a.Start.Date == day.Date);

                //Avoid random appointments in days with existing appointments
                if (appointmentInSameDay != null)
                {
                    continue;
                }

                var appointments = DataInitializerHelpers.GenerateDayAppointmentsData(context, day, _defaultUserEmail);
                DataInitializerHelpers.GenerateAppointmentsWithRandomAttendessRelationData(context, appointments);
            }

            //Generate HealthReports
            for (var i = 1; i <= DateTime.DaysInMonth(month.Year, month.Month); i++)
            {
                var day = new DateTime(month.Year, month.Month, i);

                //Avoid appointments after the max day
                if (day.Date >= _maxDay.Date)
                {
                    break;
                }
                GenerateDayHealthReportsData(context, day);
            }
        }