Exemple #1
0
        /// <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));
        }
Exemple #2
0
        /// <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()));
        }
Exemple #3
0
        /// <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);
        }