//ViewController (askKPI) //TODO use Dialog Service instead //DataService (CreateNewTreeEntry) //DAL (LogTreeEstimate) //should be dataservice instead //SampleGroup (MinKPI/MaxKPI) public static TallyAction TallyThreeP(CountTree count, ISampleSelector sampler, SampleGroup sg, ITreeDataService dataService, IDialogService dialogService) { TallyAction action = new TallyAction(count) { TreeCount = 1, }; var sgCode = sg.Code; var stCode = sg.Stratum.Code; var spCode = count.TreeDefaultValue.Species; int kpi = 0; int?value = dialogService.AskKPI((int)sg.MinKPI, (int)sg.MaxKPI, stCode, sgCode, spCode); if (value == null) { return(null); } else { kpi = value.Value; } if (kpi == -1) //user entered sure to measure { var tree = dataService.CreateNewTreeEntry(count); tree.STM = "Y"; action.TreeRecord = tree; } else { action.TreeEstimate = dataService.LogTreeEstimate(count, kpi); action.KPI = kpi; var result = ((IThreePSelector)sampler).Sample(kpi); if (result != SampleResult.C) { var tree = dataService.CreateNewTreeEntry(count); tree.KPI = kpi; tree.CountOrMeasure = result.ToString(); action.TreeRecord = tree; } } return(action); }
//DataService (CreateNewTreeEntry) // public static TallyAction TallyStandard(CountTree count, ISampleSelector sampleSelecter, ITreeDataService dataService, IDialogService dialogService) { TallyAction action = new TallyAction(count) { TreeCount = 1, }; var result = ((IFrequencyBasedSelecter)sampleSelecter).Sample(); //If we receive nothing from the sampler, we don't have a sample if (result != SampleResult.C)//&& (item.IsSelected || item.IsInsuranceItem)) { var tree = dataService.CreateNewTreeEntry(count); tree.CountOrMeasure = result.ToString(); action.TreeRecord = tree; } return(action); }