public Tree UserAddTree(Plot plot, Tree templateTree) { Tree newTree; SampleGroup assumedSG = null; TreeDefaultValueDO assumedTDV = null; if (templateTree != null) { assumedSG = templateTree.SampleGroup; assumedTDV = templateTree.TreeDefaultValue; } //extrapolate sample group if (assumedSG == null)//if we have a stratum but no sample group, pick the first one { List <SampleGroup> samplegroups = DataStore.From <SampleGroup>() .Where("Stratum_CN = @p1") .Read(plot.Stratum.Stratum_CN).ToList(); if (samplegroups.Count == 1) { assumedSG = samplegroups[0]; } } newTree = this.CreateNewTreeEntry(plot, assumedSG, assumedTDV, true); //if a 3P plot method set Count Measure to empty. if (Array.IndexOf(CruiseDAL.Schema.CruiseMethods.THREE_P_METHODS, plot.Stratum.Method) >= 0) { newTree.CountOrMeasure = string.Empty; } newTree.TreeCount = 1; //user added trees need a tree count of one because they aren't being tallied newTree.TrySave(); plot.AddTree(newTree); return(newTree); }
protected void OnTally(CountTree count, Plot plot) { if (plot == null) { throw new ArgumentNullException("plot"); } if (count == null) { throw new ArgumentNullException("count"); } bool isSingleStage = Stratum.IsSingleStage;//i.e. FIX or PNT Tree tree = null; var sg = count.SampleGroup; //if ((sg.TallyMethod & CruiseDAL.Enums.TallyMode.Manual) == CruiseDAL.Enums.TallyMode.Manual) //{ // tree = plot.CreateNewTreeEntry(count, true); // tree.TreeCount = sg.SamplingFrequency; //} //else if (isSingleStage) { //FIX and PNT should always generate a measure tree tree = DataService.CreateNewTreeEntry(plot, count, true); tree.TreeCount = 1; } else if (sg.Stratum.Is3P) { tree = TallyThreeP(plot, count); } else { tree = TallyStandard(plot, count); } _soundService.SignalTally(); //tree may be null if user didn't enter kpi if (tree != null) { tree.TrySave(); plot.AddTree(tree); //single stage trees are always measure so no need to remind the user. if (!isSingleStage) { if (tree.CountOrMeasure == "M" || tree.CountOrMeasure == "I") { if (tree.CountOrMeasure == "M") { _soundService.SignalMeasureTree(); _dialogService.ShowMessage("Measure Tree# " + tree.TreeNumber); } else if (tree.CountOrMeasure == "I") { _soundService.SignalInsuranceTree(); } } } SelectLastTree(); } }