Beispiel #1
0
 private void CalculateNewAverageTemperature(TemperatureMeasurement newMeasurement)
 {
     _degreeSum = _degreeSum + newMeasurement.Value;
     _degreeCounter++;
     _averageDegree = _degreeSum / _degreeCounter;
     _eventAggregator.GetEvent <NewAverageTemperature>().Publish(new AverageTemperature {
         Value = _averageDegree
     });
 }
    public async Task <Unit> Handle(StartTemperatureMeasurement command, CancellationToken cancellationToken)
    {
        var reservation = TemperatureMeasurement.Start(
            command.MeasurementId
            );

        await repository.Add(reservation, cancellationToken);

        return(Unit.Value);
    }
Beispiel #3
0
        private void NewTemperatureMeasurement(TemperatureMeasurement newMeasurement)
        {
            var newValue = newMeasurement.Value;

            if (_currenTemperatureUnit == TemperatureUnit.Fahrenheit)
            {
                newValue = UnitConverter.IntoFahrenheit(newValue);
            }
            Temperature = newValue.ToString("F");
        }
Beispiel #4
0
        public void SetTemperatureOnHealthVault(double tempValue)
        {
            try
            {
                if (!_isProvisioned)
                {
                    MessageBox.Show("Please provision application first");
                    return;
                }

                HealthClientAuthorizedConnection connection =
                    HealthClientApplication.CreateAuthorizedConnection(PersonId);

                HealthRecordAccessor accessor = new HealthRecordAccessor(connection, RecordId);


                TemperatureMeasurement temperature = new TemperatureMeasurement(tempValue);

                VitalSigns vitalSign = new VitalSigns();

                //generate random date
                DateTime startDate = new DateTime(2018, 1, 1);
                DateTime endDate   = new DateTime(2018, 12, 30);

                TimeSpan timeSpan   = endDate - startDate;
                var      randomTest = new Random();
                TimeSpan newSpan    = new TimeSpan(0, randomTest.Next(0, (int)timeSpan.TotalMinutes), 0);
                DateTime newDate    = startDate + newSpan;


                //set time now
                //vitalSign.When = new HealthServiceDateTime(DateTime.UtcNow);

                vitalSign.When = new HealthServiceDateTime(newDate);

                CodableValue codableValue = new CodableValue();
                codableValue.Text = "celsius";

                VitalSignsResultType vitalSignsResultType = new VitalSignsResultType();
                vitalSignsResultType.Unit       = codableValue;
                vitalSignsResultType.TextValue  = "Temperature";
                vitalSignsResultType.Title.Text = "Temperature";
                vitalSignsResultType.Value      = tempValue;
                vitalSign.VitalSignsResults.Add(vitalSignsResultType);
                accessor.NewItem(vitalSign);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Beispiel #5
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            TemperatureMeasurement = await _context.TemperatureMeasurement.FirstOrDefaultAsync(m => m.Id == id);

            if (TemperatureMeasurement == null)
            {
                return(NotFound());
            }
            return(Page());
        }
        public async Task <IActionResult> ReceiveData(TemperatureMeasurement temperatureMeasurement)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (ShouldFail())
            {
                _logger.LogInformation("Processing request intentionally failed");
                return(StatusCode(500));
            }

            await StoreData(temperatureMeasurement);

            return(Ok());
        }
Beispiel #7
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            TemperatureMeasurement = await _context.TemperatureMeasurement.FindAsync(id);

            if (TemperatureMeasurement != null)
            {
                _context.TemperatureMeasurement.Remove(TemperatureMeasurement);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
Beispiel #8
0
 public Temperature(TemperatureMeasurement measurement, RangeSide rangeSide, string value)
 {
     Measurement = measurement;
     RangeSide   = rangeSide;
     Value       = value;
 }
Beispiel #9
0
 public Temperature(TemperatureMeasurement measurement, long value, long timestamp)
     : base(timestamp)
 {
     Measurement = measurement;
     Value = value;
 }
 private async Task StoreData(TemperatureMeasurement measurement)
 {
     await System.IO.File.AppendAllTextAsync("output.txt", measurement.ToString() + Environment.NewLine);
 }
        /// <summary> 
        /// Populates the data for the length from the XML.
        /// </summary>
        /// 
        /// <param name="navigator"> 
        /// The XML node representing the length.
        /// </param>
        /// 
        /// <exception cref="ArgumentNullException">
        /// The <paramref name="navigator"/> parameter is <b>null</b>.
        /// </exception>
        /// 
        public override void ParseXml(XPathNavigator navigator)
        {
            Validator.ThrowIfNavigatorNull(navigator);

            XPathNavigator modeNav =
                navigator.SelectSingleNode("mode");

            _mode.Clear();
            if (modeNav != null)
            {
                _mode.ParseXml(modeNav);
            }

            XPathNavigator distanceNav =
                navigator.SelectSingleNode("distance");

            if (distanceNav != null)
            {
                _distance = new Length();
                _distance.ParseXml(distanceNav);
            }

            _minutes =
                XPathHelper.GetOptNavValueAsDouble(navigator, "minutes");

            int? intensity =
                XPathHelper.GetOptNavValueAsInt(navigator, "intensity");
            if (intensity != null)
            {
                _intensity = (RelativeRating)((int)intensity);
            }

            _peakHr =
                XPathHelper.GetOptNavValueAsInt(navigator, "peak-heartrate");

            _averageHr =
                XPathHelper.GetOptNavValueAsInt(navigator, "avg-heartrate");

            _minHr =
                XPathHelper.GetOptNavValueAsInt(navigator, "min-heartrate");

            _energy =
                XPathHelper.GetOptNavValueAsDouble(navigator, "energy");

            _energyFromFat =
                XPathHelper.GetOptNavValueAsDouble(navigator, "energy-from-fat");

            _peakSpeed =
                XPathHelper.GetOptNavValue<SpeedMeasurement>(
                    navigator,
                    "peak-speed");

            _averageSpeed =
                XPathHelper.GetOptNavValue<SpeedMeasurement>(
                    navigator,
                    "avg-speed");

            _minSpeed =
                XPathHelper.GetOptNavValue<SpeedMeasurement>(
                    navigator,
                    "min-speed");

            _peakPace =
                XPathHelper.GetOptNavValue<PaceMeasurement>(
                    navigator,
                    "peak-pace");

            _averagePace =
                XPathHelper.GetOptNavValue<PaceMeasurement>(
                    navigator,
                    "avg-pace");

            _minPace =
                XPathHelper.GetOptNavValue<PaceMeasurement>(
                    navigator,
                    "min-pace");

            _peakPower =
                XPathHelper.GetOptNavValue<PowerMeasurement>(
                    navigator,
                    "peak-power");

            _averagePower =
                XPathHelper.GetOptNavValue<PowerMeasurement>(
                    navigator,
                    "avg-power");

            _minPower =
                XPathHelper.GetOptNavValue<PowerMeasurement>(
                    navigator,
                    "min-power");

            _peakTorque =
                XPathHelper.GetOptNavValue<TorqueMeasurement>(
                    navigator,
                    "peak-torque");

            _averageTorque =
                XPathHelper.GetOptNavValue<TorqueMeasurement>(
                    navigator,
                    "avg-torque");

            _minTorque =
                XPathHelper.GetOptNavValue<TorqueMeasurement>(
                    navigator,
                    "min-torque");

            _leftRightBalance =
                XPathHelper.GetOptNavValueAsDouble(
                    navigator,
                    "left-right-balance");

            _peakCadence =
                XPathHelper.GetOptNavValueAsDouble(navigator, "peak-cadence");

            _averageCadence =
                XPathHelper.GetOptNavValueAsDouble(navigator, "avg-cadence");

            _minCadence =
                XPathHelper.GetOptNavValueAsDouble(navigator, "min-cadence");

            _peakTemperature =
                XPathHelper.GetOptNavValue<TemperatureMeasurement>(
                    navigator,
                    "peak-temperature");

            _averageTemperature =
                XPathHelper.GetOptNavValue<TemperatureMeasurement>(
                    navigator,
                    "avg-temperature");

            _minTemperature =
                XPathHelper.GetOptNavValue<TemperatureMeasurement>(
                    navigator,
                    "min-temperature");

            _peakAltitude =
                XPathHelper.GetOptNavValue<AltitudeMeasurement>(
                    navigator,
                    "peak-altitude");

            _averageAltitude =
                XPathHelper.GetOptNavValue<AltitudeMeasurement>(
                    navigator,
                    "avg-altitude");

            _minAltitude =
                XPathHelper.GetOptNavValue<AltitudeMeasurement>(
                    navigator,
                    "min-altitude");

            _elevationGain =
                XPathHelper.GetOptNavValue<Length>(
                    navigator,
                    "elevation-gain");

            _elevationLoss =
                XPathHelper.GetOptNavValue<Length>(
                    navigator,
                    "elevation-loss");

            _numberOfSteps =
                XPathHelper.GetOptNavValueAsInt(
                    navigator,
                    "number-of-steps");

            _numberOfAerobicSteps =
                XPathHelper.GetOptNavValueAsInt(
                    navigator,
                    "number-of-aerobic-steps");

            _aerobicStepMinutes =
                XPathHelper.GetOptNavValueAsDouble(
                    navigator,
                    "aerobic-step-minutes");
        }
Beispiel #12
0
        public async Task SetUp()
        {
            equalityComparer = EqualityComparerFactory.Create <MeasurementStatisticsModel>(x => x.MeasurementDateTime.Value !.GetHashCode(),
                                                                                           (x, y) => Math.Abs(x.Value.Value - y.Value.Value) < 10e-5 &&
                                                                                           x.MeasurementDateTime == y.MeasurementDateTime);

            var sensorType = await GetAnyAsync <SensorType>();

            var batteryPowerSourceType = await GetAnyAsync <BatteryPowerSourceType>();

            place = await GetAnyAsync <Place>();

            var sensor = new Sensor()
            {
                BatteryPowerSourceTypeId = batteryPowerSourceType.Id,
                PlaceId                = place.Id,
                SensorTypeId           = sensorType.Id,
                MinimumRequiredVoltage = 3
            };

            DbContext.Add(sensor);

            var measurement1 = new TemperatureMeasurement()
            {
                MeasurementDateTime = DateTimeProvider.Today.AddDays(-3),
                PlaceId             = place.Id,
                SensorId            = sensor.Id,
                Temperature         = 20
            };

            DbContext.Add(measurement1);
            var measurement2 = new TemperatureMeasurement()
            {
                MeasurementDateTime = DateTimeProvider.Today.AddDays(-3),
                PlaceId             = place.Id,
                SensorId            = sensor.Id,
                Temperature         = 22
            };

            DbContext.Add(measurement2);
            var measurement3 = new TemperatureMeasurement()
            {
                MeasurementDateTime = DateTimeProvider.Today.AddDays(-2),
                PlaceId             = place.Id,
                SensorId            = sensor.Id,
                Temperature         = 25
            };

            DbContext.Add(measurement3);
            var measurement4 = new TemperatureMeasurement()
            {
                MeasurementDateTime = DateTimeProvider.Today.AddDays(-1),
                PlaceId             = place.Id,
                SensorId            = sensor.Id,
                Temperature         = 30
            };

            DbContext.Add(measurement4);
            var measurement5 = new TemperatureMeasurement()
            {
                MeasurementDateTime = DateTimeProvider.Today.AddDays(-1),
                PlaceId             = place.Id,
                SensorId            = sensor.Id,
                Temperature         = 24
            };

            DbContext.Add(measurement5);

            await DbContext.SaveChangesAsync();

            var appDbContext = new SmartHomeAppDbContext(DbContext);

            temperatureMeasurementRepository = new TemperatureMeasurementRepository(appDbContext, Mapper, DateTimeProvider);
        }
Beispiel #13
0
        private async Task CreateInitialData(SmartHomeDbContext context, IDateTimeProvider dateTimeProvider)
        {
            var adminUser = new User()
            {
                Email              = "*****@*****.**",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                PasswordHash       = "asdfghjkl",
            };
            var user = new User()
            {
                Email              = "*****@*****.**",
                UserName           = "******",
                NormalizedEmail    = "*****@*****.**",
                NormalizedUserName = "******",
                PasswordHash       = "asdfghjkl",
            };

            context.Add(adminUser);
            context.Add(user);

            var fileView = new Permission()
            {
                Name = "File.View"
            };
            var fileEdit = new Permission()
            {
                Name = "File.Edit"
            };
            var measurementTemperatureView = new Permission()
            {
                Name = "Measurement.Temperature.View"
            };
            var measurementTemperatureEdit = new Permission()
            {
                Name = "Measurement.Temperature.Edit"
            };

            context.Add(fileView);
            context.Add(fileEdit);
            context.Add(measurementTemperatureView);
            context.Add(measurementTemperatureEdit);

            var bathroom = new Place()
            {
                Name = "Bathroom",
                Note = "Bathroom note"
            };
            var livingRoom = new Place()
            {
                Name = "Living room"
            };

            context.Add(bathroom);
            context.Add(livingRoom);

            var adminRole = new Role()
            {
                Name           = "Admin",
                NormalizedName = "Admin"
            };
            var userRole = new Role()
            {
                Name           = "User",
                NormalizedName = "User"
            };

            context.Add(adminRole);
            context.Add(userRole);

            context.Add(new IdentityUserRole <long>()
            {
                RoleId = adminRole.Id,
                UserId = adminUser.Id
            });
            context.Add(new IdentityUserRole <long>()
            {
                RoleId = userRole.Id,
                UserId = user.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = fileView.Id,
                RoleId       = adminRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = fileEdit.Id,
                RoleId       = adminRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = measurementTemperatureView.Id,
                RoleId       = adminRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = measurementTemperatureEdit.Id,
                RoleId       = adminRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = measurementTemperatureView.Id,
                RoleId       = userRole.Id
            });
            context.Add(new RolePermission()
            {
                PermissionId = fileView.Id,
                RoleId       = userRole.Id
            });

            context.Add(new UserPermission()
            {
                PermissionId = measurementTemperatureEdit.Id,
                UserId       = user.Id
            });

            // enumerations
            var dht11SensorType = new SensorType()
            {
                Name        = "DHT11",
                Description = "Humidity and temperature sensor."
            };

            context.Add(dht11SensorType);
            var alkalineBatteryPowerSourceType = new BatteryPowerSourceType()
            {
                BatteryType    = BatteryType.Alkaline,
                MaximumVoltage = 4.5,
                MinimumVoltage = 3.3,
                Name           = "Alkaline 3x1.5"
            };

            context.Add(alkalineBatteryPowerSourceType);
            var sensor = new Sensor()
            {
                BatteryPowerSourceTypeId = alkalineBatteryPowerSourceType.Id,
                MinimumRequiredVoltage   = 3,
                PlaceId      = bathroom.Id,
                SensorTypeId = dht11SensorType.Id,
                Name         = "DHT11 sensor"
            };

            context.Add(sensor);

            var measurement = new TemperatureMeasurement()
            {
                MeasurementDateTime = dateTimeProvider.Now.AddYears(-3),
                PlaceId             = bathroom.Id,
                SensorId            = sensor.Id,
                Temperature         = 30
            };

            context.Add(measurement);
            measurement = new TemperatureMeasurement()
            {
                MeasurementDateTime = dateTimeProvider.Now.AddYears(-2),
                PlaceId             = livingRoom.Id,
                SensorId            = sensor.Id,
                Temperature         = 24
            };
            context.Add(measurement);

            await context.SaveChangesAsync();
        }