Ejemplo n.º 1
0
        public void ExecuteUndiscoveredDepostisToolTest01()
        {
            UndiscoveredDepositsInputParams input = new UndiscoveredDepositsInputParams
            {
                // depositsCSVPath = "c:\\temp\\mapWizard\\generalCSV_wHeaders.csv"
            };

            UndiscoveredDepositsTool unDiscoveredTool = new UndiscoveredDepositsTool();
            var result = unDiscoveredTool.Execute(input);

            Assert.IsNotNull(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Run tool with user input.
        /// </summary>
        private async void RunTool()
        {
            logger.Info("-->{0}", this.GetType().Name);
            // 1. Collect input parameters
            string usedMethod = "";

            if (Model.SelectedTabIndex == 1)
            {
                usedMethod = "Negative";
            }
            else if (Model.SelectedTabIndex == 2)
            {
                usedMethod = "Middle";
            }
            else if (Model.SelectedTabIndex == 3)
            {
                usedMethod = "Custom";
            }

            if (Model.NegBinomialUseModelName == false)
            {
                Model.NegBinomialExtensionFolder = "";
            }
            if (Model.Mark3UseModelName == false)
            {
                Model.Mark3ExtensionFolder = "";
            }
            if (Model.CustomUseModelName == false)
            {
                Model.CustomExtensionFolder = "";
            }
            UndiscoveredDepositsInputParams input = new UndiscoveredDepositsInputParams
            {
                DepositsNegativeCSV   = Model.DepositsCsvString,
                DepositsCustomCSV     = Model.CustomFunctionCsvString,
                EstRationaleTXT       = Model.EstimateRationale,
                Mark3EstRationaleTXT  = Model.MARK3EstimateRationale,
                CustomEstRationaleTXT = Model.CustomEstimateRationale,
                N90     = Model.EstN90,
                N50     = Model.EstN50,
                N10     = Model.EstN10,
                N5      = Model.EstN5,
                N1      = Model.EstN1,
                Method  = usedMethod,
                TractID = Model.SelectedTract,
                NegBinomialExtensionFolder = Model.NegBinomialExtensionFolder,
                Mark3ExtensionFolder       = Model.Mark3ExtensionFolder,
                CustomExtensionFolder      = Model.CustomExtensionFolder,
                LastRunTract = "Tract: " + Model.SelectedTract
            };
            // 2. Execute tool
            UndiscoveredDepositsResult ddResult = default(UndiscoveredDepositsResult);

            Model.IsBusy = true;
            try
            {
                await Task.Run(() =>
                {
                    UndiscoveredDepositsTool tool = new UndiscoveredDepositsTool();
                    ddResult               = tool.Execute(input) as UndiscoveredDepositsResult;
                    Result.Summary         = ddResult.Summary;
                    Result.PlotImage       = ddResult.PlotImage;
                    Result.PlotImageBitMap = BitmapFromUri(Result.PlotImage);
                });

                //TODO: refactor this cleaner
                var           projectFolder     = Path.Combine(input.Env.RootPath, "UndiscDep", Model.SelectedTract);
                DirectoryInfo projectFolderInfo = null;
                Model.ModelNames.Clear();
                var modelFolder = Path.Combine(input.Env.RootPath, "UndiscDep", Model.SelectedTract, "NegativeBinomial", Model.NegBinomialExtensionFolder);
                if (Directory.Exists(Path.Combine(projectFolder, "NegativeBinomial")))
                {
                    if (usedMethod == "Negative")
                    {
                        input.Save(Path.Combine(modelFolder, "undiscovered_deposits_input_params.json"));
                    }
                    projectFolderInfo = new DirectoryInfo(Path.Combine(projectFolder, "NegativeBinomial")); //NegativeBinomial results
                    FindModelnames(projectFolderInfo);
                }
                modelFolder = Path.Combine(input.Env.RootPath, "UndiscDep", Model.SelectedTract, "Mark3", Model.Mark3ExtensionFolder);
                if (Directory.Exists(Path.Combine(projectFolder, "MARK3")))
                {
                    if (usedMethod == "Middle")
                    {
                        input.Save(Path.Combine(modelFolder, "undiscovered_deposits_input_params.json"));
                    }
                    projectFolderInfo = new DirectoryInfo(Path.Combine(projectFolder, "MARK3")); //MARK3 results
                    FindModelnames(projectFolderInfo);
                }
                modelFolder = Path.Combine(input.Env.RootPath, "UndiscDep", Model.SelectedTract, "Custom", Model.CustomExtensionFolder);
                if (Directory.Exists(Path.Combine(projectFolder, "Custom")))
                {
                    if (usedMethod == "Custom")
                    {
                        input.Save(Path.Combine(modelFolder, "undiscovered_deposits_input_params.json"));
                    }
                    projectFolderInfo = new DirectoryInfo(Path.Combine(projectFolder, "Custom")); //Custom results
                    FindModelnames(projectFolderInfo);
                }

                string lastRunFile = Path.Combine(Path.Combine(settingsService.RootPath, "UndiscDep", "undiscovered_deposits_last_run.lastrun"));
                File.Create(lastRunFile).Close();
                input.Save(Path.Combine(settingsService.RootPath, "UndiscDep", "undiscovered_deposits_input_params.json"));
                dialogService.ShowNotification("UndiscoveredDepositsTool completed successfully", "Success");
                viewModelLocator.SettingsViewModel.WriteLogText("UndiscoveredDepositsTool completed successfully", "Success");
                Model.LastRunDate  = "Last Run: " + DateTime.Now.ToString("g");
                Model.LastRunTract = "Tract: " + model.SelectedTract;
                Model.RunStatus    = 1;
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Failed to execute REngine() script");
                dialogService.ShowNotification("Run failed. Check output for details.\r\n- Are all input parameters correct?\r\n- Are all input files valid? \r\n- Are all input and output files closed?", "Error");
                viewModelLocator.SettingsViewModel.WriteLogText("Undiscovered Deposits Tool run failed. Check output for details.\r\n- Are all input parameters correct?\r\n- Are all input files valid? \r\n- Are all input and output files closed?", "Error");
                Model.RunStatus = 0;
            }
            finally
            {
                Model.IsBusy = false;
            }
            logger.Info("<--{0} completed", this.GetType().Name);
        }