/// <summary> /// Установка контекста <see cref="BSharpDocumentStorage"/> с указанием исходной директории /// </summary> /// <param name="storage">Исходное хранилище для установки контекста</param> /// <param name="path">Путь к файлам B#</param> /// <param name="pattern">Паттерн поиска</param> /// <param name="recursive">Применять рекурсивную стратегию поиска файлов B#</param> /// <param name="resolve">Признак того, что нужно применить резолюцию</param> /// <returns>Настроенный экземпляр <see cref="BSharpDocumentStorage"/></returns> public static void SetContext(BSharpDocumentStorage storage, string path, string pattern = "*.bxls", bool recursive = true, bool resolve = true) { if (resolve) { path = EnvironmentInfo.ResolvePath(path); } if (Directory.Exists(path)) { var opts = recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly; var files = Directory.GetFiles(path, pattern, opts).Select(File.ReadAllText).ToArray(); storage.SetContext(files); } else if (File.Exists(path)) { var contents = File.ReadAllText(path); storage.SetContext(contents); } else { throw new Exception("Cannot resolve target"); } }
/// <summary> /// Установка контекста <see cref="BSharpDocumentStorage"/> с указанием исходной директории /// </summary> /// <param name="storage">Исходное хранилище для установки контекста</param> /// <param name="path">Путь к файлам B#</param> /// <param name="pattern">Паттерн поиска</param> /// <param name="recursive">Применять рекурсивную стратегию поиска файлов B#</param> /// <param name="resolve">Признак того, что нужно применить резолюцию</param> /// <returns>Настроенный экземпляр <see cref="BSharpDocumentStorage"/></returns> public static void SetContext(BSharpDocumentStorage storage, string path, string pattern = "*.bxls", bool recursive = true, bool resolve = true) { if (resolve) path = EnvironmentInfo.ResolvePath(path); if (Directory.Exists(path)) { var opts = recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly; var files = Directory.GetFiles(path, pattern, opts).Select(File.ReadAllText).ToArray(); storage.SetContext(files); } else if (File.Exists(path)) { var contents = File.ReadAllText(path); storage.SetContext(contents); } else { throw new Exception("Cannot resolve target"); } }