public List <WeightMeasurement> Read()
        {
            var result = new List <WeightMeasurement>();

            var connString = DbContext.GetConnectionString();

            using (var con = new SqliteConnection(connString))
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("SELECT id, entry_date, weight, unit");
                sb.AppendLine("FROM WeightMeasurements ");

                con.Open();
                using (var cmd = new SqliteCommand(sb.ToString(), con))
                {
                    using (var dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var measurement = new WeightMeasurement();
                            measurement.Id        = Guid.Parse((string)dr["id"]);
                            measurement.EntryDate = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds((long)dr["entry_date"]);
                            measurement.Weight    = (double)dr["weight"];
                            measurement.Unit      = Enum.Parse <WeightMeasurement.Units>((string)dr["unit"]);

                            result.Add(measurement);
                        }
                    }
                }
            }

            return(result);
        }
        public void Update_existing_weight_with_some_values_should_succeed()
        {
            // Arrange
            Guid originalId            = Guid.NewGuid();
            WeightMeasurement original = GenerateRandomWeightMeasurement(originalId);

            Weight bizLogic = new Weight();
            var    created  = bizLogic.Create(original);

            // Act
            var expected = created.Artifact.Clone();

            expected.Weight += 5;

            var actual = bizLogic.Update(expected, new List <string> {
                "weight"
            });

            // Assert
            actual.Outcome.Should().Be(Common.MetrikOutcome.Ok);
            actual.Artifact.EntryDate.ToUnixTimeSeconds().Should().Be(expected.EntryDate.ToUnixTimeSeconds());
            actual.Artifact.Id.Should().NotBeEmpty();
            actual.Artifact.Unit.Should().Be(expected.Unit);
            actual.Artifact.Weight.Should().Be(expected.Weight);
            actual.Artifact.Weight.Should().NotBe(created.Artifact.Weight);
        }
Esempio n. 3
0
        public UpdateResult <WeightMeasurement> Update(WeightMeasurement measurement, List <string> updateMask)
        {
            if (measurement == null || measurement.Id == Guid.Empty)
            {
                return(UpdateResult <WeightMeasurement> .BadRequest("Weight measurement failed to be created before storage."));
            }

            if (updateMask.Contains("unit", StringComparer.InvariantCultureIgnoreCase) && measurement.Unit == WeightMeasurement.Units.None)
            {
                return(UpdateResult <WeightMeasurement> .BadRequest("Invalid weight unit provided. Valid values are: " + Enum <WeightMeasurement.Units> .GetValuesAsCSV()));
            }

            if (updateMask.Contains("weight", StringComparer.InvariantCultureIgnoreCase) && measurement.Weight < 0)
            {
                return(UpdateResult <WeightMeasurement> .BadRequest("Weight must be a non-negative value."));
            }

            try
            {
                if (_store.Update(measurement, updateMask))
                {
                    var artifact = _store.Read(measurement.Id);
                    return(UpdateResult <WeightMeasurement> .Ok(artifact));
                }
                else
                {
                    return(UpdateResult <WeightMeasurement> .Conflict("Unable to update the measurement. Please try again."));
                }
            }
            catch (Exception ex)
            {
                return(UpdateResult <WeightMeasurement> .HandleException(ex));
            }
        }
        public WeightMeasurement Read(Guid id)
        {
            WeightMeasurement result = null;

            var connString = DbContext.GetConnectionString();

            using (var con = new SqliteConnection(connString))
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("SELECT id, entry_date, weight, unit");
                sb.AppendLine("FROM WeightMeasurements ");
                sb.AppendLine("WHERE id=@id ");

                con.Open();
                using (var cmd = new SqliteCommand(sb.ToString(), con))
                {
                    cmd.Parameters.Add(new SqliteParameter("@id", id.ToString()));

                    using (var dr = cmd.ExecuteReader(System.Data.CommandBehavior.SingleRow))
                    {
                        while (dr.Read())
                        {
                            result           = new WeightMeasurement();
                            result.Id        = Guid.Parse((string)dr["id"]);
                            result.EntryDate = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds((long)dr["entry_date"]);
                            result.Weight    = (double)dr["weight"];
                            result.Unit      = Enum.Parse <WeightMeasurement.Units>((string)dr["unit"]);
                        }
                    }
                }
            }

            return(result);
        }
        public async Task <IHttpActionResult> PutWeightMeasurement(int id, WeightMeasurement weightMeasurement)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != weightMeasurement.Id)
            {
                return(BadRequest());
            }

            db.Entry(weightMeasurement).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!WeightMeasurementExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public void Update_existing_weight_with_all_values_should_succeed()
        {
            // Arrange
            Guid originalId            = Guid.NewGuid();
            WeightMeasurement expected = GenerateRandomWeightMeasurement(originalId);

            Weight bizLogic = new Weight();
            var    original = bizLogic.Create(expected);

            Assert.AreEqual(Common.MetrikOutcome.Created, original.Outcome, original.Message);

            // Act
            var artifactToUpdate = original.Artifact.Clone();

            if (artifactToUpdate.Weight < 150)
            {
                artifactToUpdate.Weight += 10.0;
            }
            else
            {
                artifactToUpdate.Weight -= 10.0;
            }

            var actual = bizLogic.Update(original.Artifact, new List <string>()
            {
                "weight"
            });

            // Assert
            actual.Outcome.Should().Be(Common.MetrikOutcome.Ok);
            actual.Artifact.EntryDate.ToUnixTimeSeconds().Should().Be(expected.EntryDate.ToUnixTimeSeconds());
            actual.Artifact.Id.Should().NotBeEmpty();
            actual.Artifact.Unit.Should().Be(expected.Unit);
            actual.Artifact.Weight.Should().Be(expected.Weight);
        }
        public bool Create(WeightMeasurement measurement)
        {
            bool result;
            var  connString = DbContext.GetConnectionString();

            using (var con = new SqliteConnection(connString))
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("INSERT INTO WeightMeasurements ");
                sb.AppendLine("(id, entry_date, weight, unit) ");
                sb.AppendLine("SELECT @id, @entry_date, @weight, @unit");
                sb.AppendLine("WHERE NOT EXISTS (SELECT id FROM WeightMeasurements WHERE id=@id) ");


                con.Open();
                using (var cmd = new SqliteCommand(sb.ToString(), con))
                {
                    cmd.Parameters.Add(new SqliteParameter("@id", measurement.Id.ToString()));
                    cmd.Parameters.Add(new SqliteParameter("@entry_date", measurement.EntryDate.ToUnixTimeSeconds()));
                    cmd.Parameters.Add(new SqliteParameter("@weight", measurement.Weight));
                    cmd.Parameters.Add(new SqliteParameter("@unit", measurement.Unit.ToString()));

                    int resultCount = cmd.ExecuteNonQuery();
                    result = resultCount > 0;
                }
            }

            return(result);
        }
Esempio n. 8
0
        // 初始化
        public void Initial()
        {
            // 方式1
            var person = new Person();
            // 方式二
            Person p         = new();
            string firstName = "marson";
            string lastName  = "shine";

            var ps = new Person {
                FirstName = firstName,
                LastName  = lastName
            };
            var ps2 = new Person {
                FirstName = firstName,
                LastName  = lastName
            };

            // record 类型,常用语只读场景,表示不可变类型
            ImmutablePerson ip  = new(firstName, lastName);
            ImmutablePerson ip2 = new(firstName, lastName);

            Console.WriteLine($"FullName = {ip.FirstName} {ip.LastName}");
            Console.WriteLine($"record 类型比较 ip == ip2 : {ip == ip2}");
            Console.WriteLine($"record 类型比较 ip.HashCode() = {ip.GetHashCode()}; ip2.HashCode() = {ip2.GetHashCode()}; 相等性 : {ip.GetHashCode() == ip2.GetHashCode()}");
            ImmutablePerson ip3 = ip2;

            ip3.FirstName = "summer";
            Console.WriteLine($"ip2.FirstName = {ip2.FirstName} ip3.FirstName = {ip3.FirstName}");
            Console.WriteLine($"record 类型比较 ip.HashCode() = {ip.GetHashCode()}; ip2.HashCode() = {ip2.GetHashCode()}; 相等性 : {ip.GetHashCode() == ip2.GetHashCode()}");
            // class 类型比较
            Person p1 = new() { FirstName = "marsonshine", LastName = "shine" };
            Person p2 = new() { FirstName = "marsonshine", LastName = "shine" };

            Console.WriteLine($"class 类型比较 p1 == p2 : {p1 == p2}");
            Console.WriteLine($"class 类型比较 ps.HashCode() = {ps.GetHashCode()}; ps2.HashCode() = {ps2.GetHashCode()}; 相等性 : {ps.GetHashCode() == ps2.GetHashCode()}");

            // record 上的 with 关键字
            // 可以指定属性必须和选填,在构造函数参数体现是必填
            // 选填是跟以前属性写法一样
            // 如果你想在原来的类型下对增加一些属性值,或者更改某些属性值,但是又不想破坏 record 带来的数据不变性,这个时候我们就可以使用 with 关键字,它会从已有的 record 类型按值复制出来一个新的 record 类型
            LoginResource login           = new("MarsonShine", "123$%^") { RememberMe = true };
            LoginResource loginLowercased = login with {
                UserName = login.UserName.ToLowerInvariant()
            };

            Console.WriteLine(login);
            Console.WriteLine(loginLowercased);

            var weight = 200;
            WeightMeasurement measurement = new(DateTime.Now, weight) {
                Pounds = WeightMeasurement.GetPounds(weight)
            };
        }
    }

    public class Person {
        public async Task <IHttpActionResult> GetWeightMeasurement(int id)
        {
            WeightMeasurement weightMeasurement = await db.WeightMeasurements.FindAsync(id);

            if (weightMeasurement == null)
            {
                return(NotFound());
            }

            return(Ok(weightMeasurement));
        }
Esempio n. 10
0
        public static WeightGet MapFrom(WeightMeasurement weight)
        {
            WeightGet result = new WeightGet();

            result.EntryDate = weight.EntryDate;
            result.Id        = weight.Id;
            result.Unit      = weight.Unit.ToString();
            result.Weight    = weight.Weight;

            return(result);
        }
Esempio n. 11
0
        /// <summary>
        /// Tries to Map the the passed in REST Request to a Domain Object
        /// </summary>
        /// <returns></returns>
        public WeightMeasurement MapTo()
        {
            Enum.TryParse(this.Unit, true, out WeightMeasurement.Units weightUnit);

            WeightMeasurement measurement = new WeightMeasurement();

            measurement.EntryDate = this.EntryDate;
            measurement.Weight    = this.Weight;
            measurement.Unit      = weightUnit;
            return(measurement);
        }
        private static WeightMeasurement GenerateRandomWeightMeasurement(Guid id)
        {
            Random r = new Random(Guid.NewGuid().GetHashCode());

            WeightMeasurement expected = new WeightMeasurement();

            expected.EntryDate = DateTime.UtcNow.AddDays(r.Next(1, 100) * -1);
            expected.Id        = id;
            expected.Unit      = WeightMeasurement.Units.Pounds;
            expected.Weight    = (double)(r.Next(60, 300) + (r.Next(0, 9) / 10.0d));
            return(expected);
        }
        public bool Update(WeightMeasurement measurement, List <string> updateMask)
        {
            bool result;

            var connString = DbContext.GetConnectionString();

            using (var con = new SqliteConnection(connString))
            {
                StringBuilder sb = new StringBuilder();

                List <SqliteParameter> parameters = new List <SqliteParameter>();


                sb.AppendLine("UPDATE WeightMeasurements SET ");

                List <string> setCommands = new List <string>(); // Use a List so we can join using commas later
                if (updateMask.Contains("entry_date", StringComparer.InvariantCultureIgnoreCase))
                {
                    setCommands.Add("entry_date=@entry_date");
                    parameters.Add(new SqliteParameter("@entry_date", measurement.EntryDate.ToUnixTimeSeconds()));
                }

                if (updateMask.Contains("weight", StringComparer.InvariantCultureIgnoreCase))
                {
                    setCommands.Add("weight=@weight");
                    parameters.Add(new SqliteParameter("@weight", measurement.Weight));
                }

                if (updateMask.Contains("unit", StringComparer.InvariantCultureIgnoreCase))
                {
                    setCommands.Add("unit=@unit");
                    parameters.Add(new SqliteParameter("@unit", measurement.Unit.ToString()));
                }

                sb.AppendLine(string.Join(",", setCommands));
                sb.AppendLine("WHERE id=@id ");

                con.Open();
                using (var cmd = new SqliteCommand(sb.ToString(), con))
                {
                    cmd.Parameters.Add(new SqliteParameter("@id", measurement.Id.ToString()));
                    foreach (var parameter in parameters)
                    {
                        cmd.Parameters.Add(parameter);
                    }
                    var resultCount = cmd.ExecuteNonQuery();

                    result = resultCount > 0;
                }
            }

            return(result);
        }
        public async Task <IHttpActionResult> PostWeightMeasurement(WeightMeasurement weightMeasurement)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.WeightMeasurements.Add(weightMeasurement);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = weightMeasurement.Id }, weightMeasurement));
        }
Esempio n. 15
0
        protected void buttonPermissionApprove_ServerClick(object sender, EventArgs e)
        {
            try
            {
                string nric = ViewState["GridViewPatientSelectedNRIC"].ToString();

                short permission = 0;

                if (CheckBoxTypeHeightMeasurement.Checked)
                {
                    permission += new HeightMeasurement().permissionFlag;
                }
                if (CheckBoxTypeWeightMeasurement.Checked)
                {
                    permission += new WeightMeasurement().permissionFlag;
                }
                if (CheckBoxTypeTemperatureReading.Checked)
                {
                    permission += new TemperatureReading().permissionFlag;
                }
                if (CheckBoxTypeBloodPressureReading.Checked)
                {
                    permission += new BloodPressureReading().permissionFlag;
                }
                if (CheckBoxTypeECGReading.Checked)
                {
                    permission += new ECGReading().permissionFlag;
                }
                if (CheckBoxTypeMRI.Checked)
                {
                    permission += new MRI().permissionFlag;
                }
                if (CheckBoxTypeXRay.Checked)
                {
                    permission += new XRay().permissionFlag;
                }
                if (CheckBoxTypeGait.Checked)
                {
                    permission += new Gait().permissionFlag;
                }

                patientBLL.ApproveRequest(nric, permission);
                Bind_GridViewTherapist();
                Update_UpdatePanelPermissions(nric);
                ScriptManager.RegisterStartupScript(this, GetType(), "alert", "toastr['success']('Request Approved, Permissions of " + nric + " has been Updated.');", true);
            }
            catch
            {
                ScriptManager.RegisterStartupScript(this, GetType(), "alert", "toastr['error']('Error occured when Updating Permissions.');", true);
            }
        }
        public async Task <IHttpActionResult> DeleteWeightMeasurement(int id)
        {
            WeightMeasurement weightMeasurement = await db.WeightMeasurements.FindAsync(id);

            if (weightMeasurement == null)
            {
                return(NotFound());
            }

            db.WeightMeasurements.Remove(weightMeasurement);
            await db.SaveChangesAsync();

            return(Ok(weightMeasurement));
        }
Esempio n. 17
0
        protected void buttonRequest_ServerClick(object sender, EventArgs e)
        {
            try
            {
                string nric       = ViewState["GridViewPatientSelectedNRIC"].ToString();
                short  permission = 0;

                if (CheckBoxTypeHeightMeasurement.Checked)
                {
                    permission += new HeightMeasurement().permissionFlag;
                }
                if (CheckBoxTypeWeightMeasurement.Checked)
                {
                    permission += new WeightMeasurement().permissionFlag;
                }
                if (CheckBoxTypeTemperatureReading.Checked)
                {
                    permission += new TemperatureReading().permissionFlag;
                }
                if (CheckBoxTypeBloodPressureReading.Checked)
                {
                    permission += new BloodPressureReading().permissionFlag;
                }
                if (CheckBoxTypeECGReading.Checked)
                {
                    permission += new ECGReading().permissionFlag;
                }
                if (CheckBoxTypeMRI.Checked)
                {
                    permission += new MRI().permissionFlag;
                }
                if (CheckBoxTypeXRay.Checked)
                {
                    permission += new XRay().permissionFlag;
                }
                if (CheckBoxTypeGait.Checked)
                {
                    permission += new Gait().permissionFlag;
                }

                therapistBLL.SubmitRequest(nric, permission);
                ScriptManager.RegisterStartupScript(this, GetType(), "alert", "$('#modalSelectPermissions').modal('hide');toastr['success']('Request Submitted to " + nric + " for Permissions.');", true);
                Bind_GridViewPatient();
            }
            catch
            {
                ScriptManager.RegisterStartupScript(this, GetType(), "alert", "$('#modalSelectPermissions').modal('hide');toastr['error']('Error occured when Submitting Request.');", true);
            }
        }
Esempio n. 18
0
        public Weight(StructuredDateTime when, WeightMeasurement weight)
            : this()
        {
            if (when == null)
            {
                throw new ArgumentNullException("when");
            }
            if (weight == null)
            {
                throw new ArgumentNullException("weight");
            }

            When  = when;
            Value = weight;
        }
Esempio n. 19
0
        public WeightMeasurement MapTo()
        {
            var result = new WeightMeasurement();

            result.EntryDate = this.EntryDate;
            result.Id        = this.Id;
            result.Unit      = WeightMeasurement.Units.None;
            if (Enum.TryParse <WeightMeasurement.Units>(this.Unit, true, out var parsedUnit))
            {
                result.Unit = parsedUnit;
            }
            result.Weight = this.Weight;

            return(result);
        }
        /// <summary>
        /// Tries to Map the the passed in REST Request to a Domain Object
        /// </summary>
        /// <returns></returns>
        public WeightMeasurement MapTo()
        {
            if (Enum.TryParse(this.Unit, true, out WeightMeasurement.Units weightUnit))
            {
                if (weightUnit != WeightMeasurement.Units.None)
                {
                    WeightMeasurement measurement = new WeightMeasurement();
                    measurement.EntryDate = this.EntryDate;
                    measurement.Weight    = this.Weight;
                    measurement.Unit      = weightUnit;
                    return(measurement);
                }
            }

            return(null);
        }
Esempio n. 21
0
        public CreateResult <WeightMeasurement> Create(WeightMeasurement measurement)
        {
            if (measurement is null)
            {
                return(CreateResult <WeightMeasurement> .BadRequest("Weight measurement failed to be created before storage."));
            }

            if (measurement.Unit == WeightMeasurement.Units.None)
            {
                return(CreateResult <WeightMeasurement> .BadRequest("Invalid weight unit provided. Valid values are: " + Enum <WeightMeasurement.Units> .GetValuesAsCSV()));
            }

            if (measurement.Weight < 0)
            {
                return(CreateResult <WeightMeasurement> .BadRequest("Weight must be a non-negative value."));
            }

            try
            {
                if (measurement.Id == Guid.Empty)
                {
                    measurement.Id = Guid.NewGuid();
                }
                else
                {
                    var existing = _store.Read(measurement.Id);
                    if (existing != null && existing.Id.Equals(measurement.Id))
                    {
                        return(CreateResult <WeightMeasurement> .Conflict("ID already exists"));
                    }
                }

                if (_store.Create(measurement))
                {
                    return(CreateResult <WeightMeasurement> .Created(measurement));
                }
                else
                {
                    return(CreateResult <WeightMeasurement> .InternalError("Failed to persist the measurement to a data store."));
                }
            }
            catch (Exception ex)
            {
                return(CreateResult <WeightMeasurement> .HandleException(ex));
            }
        }
        public void Create_weight_should_populate_an_empty_ID()
        {
            // Arrange
            WeightMeasurement expected = GenerateRandomWeightMeasurement();

            expected.Id = Guid.Empty;

            // Act
            Weight bizLogic = new Weight();
            var    actual   = bizLogic.Create(expected);

            // Assert
            actual.Outcome.Should().Be(Common.MetrikOutcome.Created, actual.Message);
            actual.Artifact.EntryDate.Should().Be(expected.EntryDate);
            actual.Artifact.Id.Should().NotBeEmpty();
            actual.Artifact.Unit.Should().Be(expected.Unit);
            actual.Artifact.Weight.Should().Be(expected.Weight);
        }
        public void Get_weight_by_valid_ID()
        {
            // Arrange
            var client = ClientHelper.GetSdkClient();

            DateTime expectedEntryDate = TestHelper.GetRandomPastDate(1, 365);
            double   expectedWeight    = TestHelper.GetRandomDouble(1, 300);

            WeightMeasurement.Units expectedUnit = WeightMeasurement.Units.Pounds;
            var artifact   = client.Weight.Create(expectedEntryDate, expectedWeight, expectedUnit);
            var expectedId = artifact.Id;

            // Act
            WeightMeasurement actual = client.Weight.Get(expectedId);

            // Assert
            actual.Id.Should().NotBeEmpty();
        }
        public void Create_weight_should_retain_the_original_ID()
        {
            // Arrange
            var expectedId             = Guid.NewGuid();
            WeightMeasurement expected = GenerateRandomWeightMeasurement();

            expected.Id = expectedId;

            // Act
            var bizLogic = new Weight();
            var actual   = bizLogic.Create(expected);

            // Assert
            actual.Outcome.Should().Be(Common.MetrikOutcome.Created, actual.Message);
            actual.Artifact.EntryDate.Should().Be(expected.EntryDate);
            actual.Artifact.Id.Should().Be(expectedId);
            actual.Artifact.Unit.Should().Be(expected.Unit);
            actual.Artifact.Weight.Should().Be(expected.Weight);
        }
Esempio n. 25
0
        public async Task <JsonResult> CreateWeight(MeasurementViewModel viewModel)
        {
            var user = await userManager.FindByIdAsync(User.Identity.GetUserId());

            if (user == null)
            {
                return(Json(HttpStatusCode.Unauthorized.ToString()));
            }
            if (ModelState.IsValid)
            {
                var measurement = new WeightMeasurement
                {
                    MeasurementDate = viewModel.MeasurementDate,
                    Value           = Convert.ToDouble(viewModel.Value)
                };
                var oldMeasurement = weightMeasurementService.Find(m =>
                                                                   m.ApplicationUser.Id == user.Id &&
                                                                   m.MeasurementDate == measurement.MeasurementDate).ToList();
                if (oldMeasurement.Count == 0)
                {
                    measurement.ApplicationUser = user;
                    weightMeasurementService.Create(measurement);
                    return(Json("Created successfully"));
                }
                else
                {
                    oldMeasurement.First().Value = measurement.Value;
                    weightMeasurementService.Update(oldMeasurement.First());
                    return(Json("Updated successfully"));
                }
            }
            string errors = "";

            foreach (var modelState in ModelState.Values)
            {
                foreach (var error in modelState.Errors)
                {
                    errors += error.ErrorMessage + ". ";
                }
            }
            // error
            return(Json(errors));
        }
        // TODO: Clarify what "fail" means
        public void Create_weight_should_fail_when_a_duplicate_ID_is_passed_in()
        {
            // Arrange
            var originalId = Guid.NewGuid();

            WeightMeasurement original = GenerateRandomWeightMeasurement();

            original.Id = originalId;

            WeightMeasurement expected = GenerateRandomWeightMeasurement();

            expected.Id = originalId;

            // Act
            var bizLogic = new Weight();

            _ = bizLogic.Create(original);
            var actual = bizLogic.Create(expected);

            // Assert
            actual.Outcome.Should().Be(Common.MetrikOutcome.Conflict);
        }
        public bool Delete(WeightMeasurement measurement)
        {
            bool result = false;

            var connString = DbContext.GetConnectionString();

            using (var con = new SqliteConnection(connString))
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("DELETE FROM WeightMeasurements ");
                sb.AppendLine("WHERE id=@id ");

                con.Open();
                using (var cmd = new SqliteCommand(sb.ToString(), con))
                {
                    cmd.Parameters.Add(new SqliteParameter("@id", measurement.Id.ToString()));
                    int resultCount = cmd.ExecuteNonQuery();

                    result = resultCount > 0;
                }
            }

            return(result);
        }