private void handleCommandException(NpgsqlCommand cmd, Exception e) { this.SafeDispose(); Logger.LogFailure(cmd, e); MartenExceptionTransformer.WrapAndThrow(cmd, e); }
public void CompletelyRemove(Type documentType) { var mapping = _options.Storage.MappingFor(documentType); using var conn = CreateConnection(); conn.Open(); var writer = new StringWriter(); foreach (var schemaObject in ((IFeatureSchema)mapping.Schema).Objects) { schemaObject.WriteDropStatement(_options.Advanced.Migrator, writer); } var sql = writer.ToString(); var cmd = conn.CreateCommand(sql); try { cmd.ExecuteNonQuery(); } catch (Exception e) { MartenExceptionTransformer.WrapAndThrow(cmd, e); } }
public async Task CompletelyRemoveAsync(Type documentType) { var mapping = _options.Storage.MappingFor(documentType); using var conn = _tenant.CreateConnection(); await conn.OpenAsync(); var writer = new StringWriter(); foreach (var schemaObject in ((IFeatureSchema)mapping.Schema).Objects) { schemaObject.WriteDropStatement(_options.Advanced.DdlRules, writer); } var sql = writer.ToString(); var cmd = conn.CreateCommand(sql); try { await cmd.ExecuteNonQueryAsync(); } catch (Exception e) { MartenExceptionTransformer.WrapAndThrow(cmd, e); } }
public async Task <TResult> ExecuteAsync <TResult>(Expression expression, CancellationToken token, ResultOperatorBase op) { try { var builder = new LinqHandlerBuilder(this, _session, expression, op); var handler = builder.BuildHandler <TResult>(); await ensureStorageExistsAsync(builder, token).ConfigureAwait(false); return(await ExecuteHandlerAsync(handler, token).ConfigureAwait(false)); } catch (Exception e) { MartenExceptionTransformer.WrapAndThrow(e); } return(default);