public IEnumerable <IResult> SelectDir()
        {
            if (CurrentDirMap.Value == null)
            {
                yield break;
            }

            var dir = CurrentDirMap.Value.Dir;

            if (!Directory.Exists(dir))
            {
                FileHelper.CreateDirectoryRecursive(dir);
            }

            var dialog = new SelectDirResult(dir);

            yield return(dialog);

            CurrentDirMap.Value.Dir = dialog.Result;
        }
        public IEnumerable <IResult> SelectReportDir()
        {
            var dir = Settings.Value.ReportDir ?? Settings.Value.MapPath("Reports");

            if (!Directory.Exists(dir))
            {
                try
                {
                    FileHelper.CreateDirectoryRecursive(dir);
                }
                catch { dir = Settings.Value.GetVarRoot(); }
            }

            var dialog = new SelectDirResult(dir);

            yield return(dialog);

            Settings.Value.ReportDir = dialog.Result;
            Settings.Value.IsDirectoryValid();
        }