コード例 #1
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Does validate profile source link.
        /// </summary>
        /// <param name="value">Profile source link to validation.</param>
        /// <param name="cultureInfo">Ignored.</param>
        /// <returns>Validation result.</returns>
        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
        {
            // NOTE: null value is valid
            string message = null;

            if ((null != value) && !string.IsNullOrEmpty(value.ToString()))
            {
                string testString = value.ToString();

                if (DataSourceOpener.IsConnectionString(testString))
                {
                    DataSourceOpener.IsConnectionPossible(testString, out message); // NOTE: ignore result
                }
                else
                {
                    if (!System.IO.File.Exists(testString))
                    {
                        message = App.Current.FindString("ImportProfileNotFound");
                    }
                    else
                    {
                        if (FileHelpers.IsShapeFile(testString))
                        {
                            message = _CheckShapeFile();
                        }
                        else if ((ImportType.Zones == _importType) ||
                                 (ImportType.Barriers == _importType))
                        {
                            message = App.Current.FindString("ImportProfileInvalidDataSourceFormat");
                        }
                        else
                        {
                            string file = DataSourceOpener.FilePath; // store state
                            DataSourceOpener.FilePath = testString;
                            DataSourceOpener.IsConnectionPossible(DataSourceOpener.ConnectionString,
                                                                  out message); // NOTE: ignore result
                            DataSourceOpener.FilePath = file;                   // restore state
                        }
                    }
                }
            }

            return((null == message) ? ValidationResult.ValidResult :
                   new ValidationResult(false, message));
        }
コード例 #2
0
        /// <summary>
        /// Does validate profile table name.
        /// </summary>
        /// <param name="value">Profile table name to validation.</param>
        /// <param name="cultureInfo">Ignored.</param>
        /// <returns>Validation result.</returns>
        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
        {
            ProfileNotEmptyValidationRule emptyValidation = new ProfileNotEmptyValidationRule();
            ValidationResult result = emptyValidation.Validate(value, cultureInfo);

            if (!result.IsValid)
            {
                return(result);
            }

            result = ValidationResult.ValidResult;

            string         message = null;
            IList <string> tabels  = DataSourceOpener.GetTableNameList(out message);

            if (!tabels.Contains(value.ToString()))
            {
                message = App.Current.FindString("ImportProfileInvalidTableName");
                result  = new ValidationResult(false, message);
            }

            return(result);
        }