/// <summary> /// Sprawdź, czy wartość występuje w podanej liści argumentów rozdzielonych separatorem ',', ';' /// Sprawdź, czy wartość ceny w podanej liści argumentów rozdzielonych separatorem ',', ';' /// </summary> /// <param name="value"> /// Przekazana wartość jako object /// /// Value passed as object /// </param> /// <param name="validationContext"> /// Kontekst klasy nadrzędnej jako ValidationContext /// The context of the parent class as ValidationContext /// </param> /// <returns> /// Rezultat walidacji jako ValidationResult /// Validation result as ValidationResult /// </returns> protected override ValidationResult IsValid(object value, ValidationContext validationContext) { if (null != validationContext) { SetValidationContext(validationContext); } if (null != value && CheckForConnection) { value = ConnectionSettings ?? value; SqlConnection sqlConnection = null; try { using (sqlConnection = new SqlConnection(DatabaseMssql.ParseConnectionString((string)value))) { sqlConnection.Open(); return(ValidationResult.Success); } } catch (Exception e) { Exception = string.Format("{0}, {1}.", e.Message, e.StackTrace); log4net.Error(Exception, e); } finally { try { if (null != sqlConnection) { sqlConnection.Close(); } } catch (Exception e) { Exception = string.Format("{0}, {1}.", e.Message, e.StackTrace); log4net.Error(Exception, e); } } if (null != ErrorMessage) { return(new ValidationResult(string.Format(ErrorMessage, value))); } return(new ValidationResult(string.Format( "Nie można utworzyć połączenia do bazy danych Mssql używając danych: {0} {1}", value, Exception))); } return(ValidationResult.Success); }
public virtual string GetConnectionString() { var connectionString = string.Empty; try { if (!string.IsNullOrWhiteSpace(ConnectionString)) { connectionString = AesIVProviderService.Decpypt(ConnectionString, RsaProviderService.AsymmetricPublicKeyAsString); connectionString = RsaProviderService.DecryptWithPublicKey(connectionString); connectionString = DatabaseMssql.ParseConnectionString(connectionString); } } catch (Exception e) { _log4Net.Error( $"\n{e.GetType()}\n{e.InnerException?.GetType()}\n{e.Message}\n{e.StackTrace}\n", e); } return(connectionString); }
public virtual string GetCreateScript(string connectionString = null, string connectionStringName = null, string settingsJsonFileName = null) { try { ConnectionStringName = connectionStringName; SettingsJsonFileName = settingsJsonFileName; ConnectionString = connectionString ?? DatabaseMssql.GetConnectionString(ConnectionStringName, SettingsJsonFileName); if (null != ConnectionString) { var sqlConnectionStringBuilder = new SqlConnectionStringBuilder(ConnectionString); AttachDBFilename = sqlConnectionStringBuilder.AttachDBFilename; if (null != AttachDBFilename && !string.IsNullOrWhiteSpace(AttachDBFilename)) { InitialCatalog = sqlConnectionStringBuilder.InitialCatalog; LogAttachDBFilename ??= Path.Combine(Path.GetDirectoryName(AttachDBFilename), string.Format("{0}_log.ldf", Path.GetFileName(AttachDBFilename) .Replace(Path.GetExtension(Path.GetFileName(AttachDBFilename)), string.Empty))); LogInitialCatalog ??= string.Format("{0}_log", InitialCatalog); if ( null != sqlConnectionStringBuilder && null != AttachDBFilename && !string.IsNullOrWhiteSpace(AttachDBFilename) && !File.Exists(AttachDBFilename) && null != InitialCatalog && !string.IsNullOrWhiteSpace(InitialCatalog) && null != LogAttachDBFilename && !string.IsNullOrWhiteSpace(LogAttachDBFilename) && null != LogInitialCatalog && !string.IsNullOrWhiteSpace(LogInitialCatalog) ) { var mdfCreateDatabaseScriptPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "scripts", "Db", "Mssql", "MdfCreateDatabaseScript.sql"); if (File.Exists(mdfCreateDatabaseScriptPath)) { CreateScript = File.ReadAllText(mdfCreateDatabaseScriptPath) .Replace("%InitialCatalog%", InitialCatalog) .Replace("%AttachDBFilename%", AttachDBFilename) .Replace("%Size%", Size ?? "8MB") .Replace("%MaxSize%", MaxSize ?? "131072MB") .Replace("%FileGrowTh%", FileGrowTh ?? "1 %") .Replace("%LogInitialCatalog%", LogInitialCatalog) .Replace("%LogAttachDBFilename%", LogAttachDBFilename) .Replace("%LogSize%", LogSize ?? "8MB") .Replace("%LogMaxSize%", LogMaxSize ?? "8192MB") .Replace("%LogFileGrowTh%", LogFileGrowTh ?? "1 %") ; } #if DEBUG _log4Net.Debug($"CreateScript{Environment.NewLine}{CreateScript}{Environment.NewLine}"); #endif return(CreateScript); } } } } catch (Exception e) { _log4Net.Error( string.Format("\n{0}\n{1}\n{2}\n{3}\n", e.GetType(), e.InnerException?.GetType(), e.Message, e.StackTrace), e); } return(null); }