public BsonValue CreateResponseMessageBackup(object command, MediatRActionsEnum action = MediatRActionsEnum.Sent, bool increaseRetryCounter = false, string additionalData = null, string errorData = null) { try { var backUp = new MediatRBackup { Id = Guid.NewGuid(), Retries = increaseRetryCounter ? 1 : 0, AdditionalData = string.IsNullOrEmpty(additionalData) ? string.Empty : additionalData, IsError = false, MessageContent = GetSerializedContent(command), //System.Text.Json.JsonSerializer.Serialize(command), TimeStampUTC = DateTime.UtcNow.ToUniversalTime(), Action = action.ToString(), Error = string.IsNullOrEmpty(errorData) ? string.Empty : errorData }; return(MediatRBackupLiteDbRepository.Create(backUp)); } catch (Exception ex) { Devon4NetLogger.Error(ex); throw; } }
public BsonValue CreateMessageBackup <T>(ActionBase <T> command, MediatRActionsEnum action = MediatRActionsEnum.Sent, bool increaseRetryCounter = false, string additionalData = null, string errorData = null) where T : class { try { if (command?.InternalMessageIdentifier == null || command.InternalMessageIdentifier.IsNullOrEmptyGuid()) { throw new ArgumentException($"The provided command and the command identifier cannot be null "); } var backUp = new MediatRBackup { Id = Guid.NewGuid(), InternalMessageIdentifier = command.InternalMessageIdentifier, Retries = increaseRetryCounter ? 1 : 0, AdditionalData = string.IsNullOrEmpty(additionalData) ? string.Empty : additionalData, IsError = false, MessageContent = GetSerializedContent(command), //System.Text.Json.JsonSerializer.Serialize(command), MessageType = command.MessageType, TimeStampUTC = command.Timestamp.ToUniversalTime(), Action = action.ToString(), Error = string.IsNullOrEmpty(errorData) ? string.Empty : errorData }; return(MediatRBackupLiteDbRepository.Create(backUp)); } catch (Exception ex) { Devon4NetLogger.Error(ex); throw; } }
private async Task BackUpMessage(TRequest request, MediatRActionsEnum queueAction = MediatRActionsEnum.Sent, bool increaseRetryCounter = false, string additionalData = null, string errorData = null) { MediatRBackupLiteDbService?.CreateResponseMessageBackup(request, queueAction, increaseRetryCounter, additionalData, errorData); if (MediatRBackupService != null && MediatRBackupService.UseExternalDatabase) { await MediatRBackupService.CreateResponseMessageBackup(request, queueAction, increaseRetryCounter, additionalData, errorData).ConfigureAwait(false); } }
private async Task BackUpMessage <TResult>(ActionBase <TResult> command, MediatRActionsEnum queueAction = MediatRActionsEnum.Sent, bool increaseRetryCounter = false, string additionalData = null, string errorData = null) where TResult : class { try { MediatRBackupLiteDbService?.CreateMessageBackup(command, queueAction, increaseRetryCounter, additionalData, errorData); if (MediatRBackupService != null && MediatRBackupService.UseExternalDatabase) { await MediatRBackupService.CreateMessageBackup(command, queueAction, increaseRetryCounter, additionalData, errorData).ConfigureAwait(false); } } catch (Exception ex) { Devon4NetLogger.Error($"Error making the backup of the MediatR action base. {ex.Message} {ex.InnerException}"); Devon4NetLogger.Error(ex); throw; } }
public async Task <MediatRBackup> CreateMessageBackup <T>(ActionBase <T> command, MediatRActionsEnum action = MediatRActionsEnum.Sent, bool increaseRetryCounter = false, string additionalData = null, string errorData = null) where T : class { MediatRBackupContext ctx = null; try { ctx = CreateContext(); if (ctx == null) { throw new ArgumentException("The database provider is not supported to host threads"); } if (!UseExternalDatabase) { throw new ArgumentException("Please setup your MeadiatRBackupContext database context to use MediatRBackupService"); } if (command?.InternalMessageIdentifier == null || command.InternalMessageIdentifier.IsNullOrEmptyGuid()) { throw new ArgumentException($"The provided command and the command identifier cannot be null "); } var backUp = new MediatRBackup { Id = Guid.NewGuid(), InternalMessageIdentifier = command.InternalMessageIdentifier, Retries = increaseRetryCounter ? 1 : 0, AdditionalData = string.IsNullOrEmpty(additionalData) ? string.Empty : additionalData, IsError = false, MessageContent = GetSerializedContent(command), MessageType = command.MessageType, TimeStampUTC = command.Timestamp.ToUniversalTime(), Action = action.ToString(), Error = string.IsNullOrEmpty(errorData) ? string.Empty : errorData }; var result = await ctx.MediatRBackup.AddAsync(backUp).ConfigureAwait(false); await ctx.SaveChangesAsync(); await ctx.DisposeAsync(); return(result.Entity); } catch (Exception ex) { Devon4NetLogger.Error(ex); throw; } finally { if (ctx != null) { await ctx.DisposeAsync().ConfigureAwait(false); } } }
public async Task <MediatRBackup> CreateResponseMessageBackup(object command, MediatRActionsEnum action = MediatRActionsEnum.Sent, bool increaseRetryCounter = false, string additionalData = null, string errorData = null) { try { var ctx = CreateContext(); var backUp = new MediatRBackup { Id = Guid.NewGuid(), Retries = increaseRetryCounter ? 1 : 0, AdditionalData = string.IsNullOrEmpty(additionalData) ? string.Empty : additionalData, IsError = false, MessageContent = GetSerializedContent(command), //System.Text.Json.JsonSerializer.Serialize(command), TimeStampUTC = DateTime.UtcNow.ToUniversalTime(), Action = action.ToString(), Error = string.IsNullOrEmpty(errorData) ? string.Empty : errorData }; var result = await ctx.MediatRBackup.AddAsync(backUp).ConfigureAwait(false); await ctx.SaveChangesAsync(); await ctx.DisposeAsync(); return(result.Entity); } catch (Exception ex) { Devon4NetLogger.Error(ex); throw; } }