public Task UpdateTreeAsync(Tree_Ex tree)
 {
     return(Task.Run(() => UpdateTree(tree)));
 }
        public void UpdateTree(Tree_Ex tree)
        {
            if (tree == null)
            {
                throw new ArgumentNullException(nameof(tree));
            }

            //if (tree.IsPersisted == false) { throw new InvalidOperationException("tree is not persisted before calling update"); }
            //Database.Update(tree);

            Database.Execute2(
                @"UPDATE Tree SET
    TreeNumber = @TreeNumber,
    StratumCode = @StratumCode,
    SampleGroupCode = @SampleGroupCode,
    SpeciesCode = @SpeciesCode,
    LiveDead = @LiveDead,
    CountOrMeasure = @CountOrMeasure,
    ModifiedBy = @DeviceID
WHERE TreeID = @TreeID;
" +
                UPSERT_TREEMEASURMENT_COMMAND,
                new
            {
                tree.TreeID,
                tree.TreeNumber,
                tree.StratumCode,
                tree.SampleGroupCode,
                tree.SpeciesCode,
                tree.LiveDead,
                CountOrMeasure = tree.CountOrMeasure ?? "",

                tree.SeenDefectPrimary,
                tree.SeenDefectSecondary,
                tree.RecoverablePrimary,
                tree.HiddenPrimary,
                tree.Grade,

                tree.HeightToFirstLiveLimb,
                tree.PoleLength,
                tree.ClearFace,
                tree.CrownRatio,
                tree.DBH,

                tree.DRC,
                tree.TotalHeight,
                tree.MerchHeightPrimary,
                tree.MerchHeightSecondary,
                tree.FormClass,

                tree.UpperStemDiameter,
                tree.UpperStemHeight,
                tree.DBHDoubleBarkThickness,
                tree.TopDIBPrimary,
                tree.TopDIBSecondary,

                tree.DefectCode,
                tree.DiameterAtDefect,
                tree.VoidPercent,
                tree.Slope,
                tree.Aspect,

                tree.Remarks,
                tree.IsFallBuckScale,
                tree.Initials,
                DeviceID,
            });
        }