/// <summary> /// Checks whether the hydraulic boundary database is linked to a database file. /// </summary> /// <param name="hydraulicBoundaryDatabase">The hydraulic boundary database to check /// for being linked.</param> /// <returns><c>true</c> if the hydraulic boundary database is linked; /// <c>false</c> otherwise.</returns> /// <exception cref="ArgumentNullException">Thrown when /// <paramref name="hydraulicBoundaryDatabase"/> is <c>null</c>.</exception> public static bool IsLinked(this HydraulicBoundaryDatabase hydraulicBoundaryDatabase) { if (hydraulicBoundaryDatabase == null) { throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); } return(!string.IsNullOrEmpty(hydraulicBoundaryDatabase.FilePath)); }
/// <summary> /// Creates a new instance of <see cref="HydraulicBoundaryCalculationSettings"/> /// based on a <see cref="HydraulicBoundaryDatabase"/>. /// </summary> /// <param name="hydraulicBoundaryDatabase">The <see cref="HydraulicBoundaryDatabase"/> /// to create a <see cref="HydraulicBoundaryCalculationSettings"/> for.</param> /// <returns>A <see cref="HydraulicBoundaryCalculationSettings"/>.</returns> /// <exception cref="ArgumentException">Thrown when the hydraulic boundary database file path or /// the hlcd file path is <c>null</c>, is empty or consists of whitespace.</exception> public static HydraulicBoundaryCalculationSettings CreateSettings(HydraulicBoundaryDatabase hydraulicBoundaryDatabase) { if (hydraulicBoundaryDatabase == null) { throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); } return(new HydraulicBoundaryCalculationSettings(hydraulicBoundaryDatabase.FilePath, hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings.FilePath, hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings.UsePreprocessorClosure, hydraulicBoundaryDatabase.EffectivePreprocessorDirectory())); }
/// <summary> /// Gets the preprocessor directory to be used during Hydra-Ring calculations. /// </summary> /// <param name="hydraulicBoundaryDatabase">The hydraulic boundary database to get the /// effective preprocessor directory from.</param> /// <returns>A preprocessor directory, which is <see cref="string.Empty"/> when /// <see cref="HydraulicLocationConfigurationSettings.CanUsePreprocessor"/> or /// <see cref="HydraulicLocationConfigurationSettings.UsePreprocessor"/> is <c>false</c>.</returns> /// <exception cref="ArgumentNullException">Thrown when /// <paramref name="hydraulicBoundaryDatabase"/> is <c>null</c>.</exception> public static string EffectivePreprocessorDirectory(this HydraulicBoundaryDatabase hydraulicBoundaryDatabase) { if (hydraulicBoundaryDatabase == null) { throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); } return(hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings.CanUsePreprocessor && hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings.UsePreprocessor ? hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings.PreprocessorDirectory : string.Empty); }