/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /// <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)); }
/// <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); }