Exemple #1
0
        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();
            }
        }